过滤条件在列表中无法正常工作(C#3.0)

时间:2010-05-07 02:46:31

标签: c#-3.0

我有一个有很多NULL或“”字符串的数据表。接下来,我将DataTable类型转换为列表。 现在,如果我想在此列表中过滤这些条件并获得结果值(不带NULL或String.Empty或“”记录),我该怎么办?

我的代码

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

请帮忙 感谢

1 个答案:

答案 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();

因此,它会查看每一行,但只返回第一列具有值且字符串值不为空或空格的行。