2010-05-07 3 views
0

У меня есть тип данных, который имеет много строк NULL или "". Затем я возвращаю тип DataTable в список. Теперь, если я хочу отфильтровать эти условия в этом списке и получить результирующее значение (без записей NULL или String.Empty или ""), что мне делать?Состояние фильтра не работает должным образом в списке (C# 3.0)

Мой код

DataTableExtensions.AsEnumerable(dt).ToList().ForEach(i => 
       { 
        if (i[0] != null) 
        { 
         if ((i[0].ToString() != string.Empty)|| (i[0].ToString() != " ")) 
         { 
          list = dt.AsEnumerable().ToList(); 
         } 
        } 

       }); 

Но я получаю все записи. Он не фильтруется.

Использование C# 3,0

Пожалуйста, помогите Спасибо

ответ

2

Вы смотрите на я [0], так что я буду считать, что вы заинтересованы только в первом столбце вашей таблицы:

var rows = dt.AsEnumerable() 
      .Where(r => !r.IsNull(0) // check for DBNull 
       && r[0] != null 
       && r[0].ToString().Trim().Length > 0) 
      .ToList(); 

Так что смотрит на каждой строке, но возвращает только строки, где первый столбец имеет значение и значение строка не пуста или пробелы.

Смежные вопросы