2010-05-07 68 views
0

我有一个有很多NULL或“”字符串的数据表。接下来,我将类型数据表转换为列表。 现在,如果我想过滤这个列表中的条件并得到结果值(没有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(); 

因此,查看每一行,但只返回第一列有值并且该字符串值不为空或空白的行。