我有一个有很多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
请帮忙 感谢
答案 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();
因此,它会查看每一行,但只返回第一列具有值且字符串值不为空或空格的行。