Linq检查一组数据行中是否有空值?

Linq检查一组数据行中是否有空值?,linq,null,Linq,Null,我有一组DataRows,我想检查这些行中的任何字段中是否有空值。我在下面提出了这个,但我不确定,因为我正在嵌套一个ALL result.AsEnumerable().AsQueryable().All(o => o.ItemArray.All(i=>i == DBNull.Value)) 很难说,因为我不能在lambdas中放置“watch”。不确定这是否是正确答案。我也是Linq的新手,但我相信你可以做这样的事情 result.AsEnumerable().AsQueryabl

我有一组DataRows,我想检查这些行中的任何字段中是否有空值。我在下面提出了这个,但我不确定,因为我正在嵌套一个ALL

result.AsEnumerable().AsQueryable().All(o => o.ItemArray.All(i=>i == DBNull.Value))

很难说,因为我不能在lambdas中放置“watch”。

不确定这是否是正确答案。我也是Linq的新手,但我相信你可以做这样的事情

result.AsEnumerable().AsQueryable().SingleOrDefault(o => o.ItemArray.All(i=>i == DBNull.Value))

这将返回项目列表,如果没有,则返回null。不确定是否也可以嵌套它,但不明白为什么不可能

不确定这是否是正确答案。我也是Linq的新手,但我相信你可以做这样的事情

result.AsEnumerable().AsQueryable().SingleOrDefault(o => o.ItemArray.All(i=>i == DBNull.Value))

这将返回项目列表,如果没有,则返回null。不确定是否也可以嵌套它,但不明白为什么不可能

实际上,您需要使用
Any
(在代码中,如果所有值都为null,您将返回true),并且
AsQueryable()
在这种情况下是无用的

bool nullFound = result.AsEnumerable()
                       .Any(o => o.ItemArray.Any(i=>i == DBNull.Value || i == null));
然后,如果需要某个值为null的所有行的列表,只需执行以下操作:

var rowsWithNulls = result.AsEnumerable()
                         .Where(o => o.ItemArray.Any(i=>i == DBNull.Value || i == null))
                         .ToList();
附言


为了更安全,我还添加了一个
null
检查,但是如果您确定只有
DBNull.Value
,您可以将其删除。

实际上您需要使用
任何
(在您的代码中,如果所有值都为null,您将返回true),并且
AsQueryable()
在这种情况下是无用的

bool nullFound = result.AsEnumerable()
                       .Any(o => o.ItemArray.Any(i=>i == DBNull.Value || i == null));
然后,如果需要某个值为null的所有行的列表,只需执行以下操作:

var rowsWithNulls = result.AsEnumerable()
                         .Where(o => o.ItemArray.Any(i=>i == DBNull.Value || i == null))
                         .ToList();
附言


为了更安全,我还添加了一个
null
检查,但是如果您确定只有
DBNull.Value
,则可以删除它。

您不能在lambdas中放置“watch”,但可以在lambda表达式中放置断点,以便在计算表达式时查看o或I的值。可能会派上用场。您不能在lambdas中放置“watch”,但可以在lambda表达式中放置断点,以便在计算表达式时查看o或i的值。可能会派上用场。我想你的意思是“AsQueryable是无用的”,而不是可计算的。我想你的意思是“AsQueryable是无用的”,而不是可计算的。实际上,这个代码是错误的。如果代码中有一行且只有一行的所有值都为null,则将返回该行,否则将返回null。这不是答案。好吧,我明白了。无论如何,谢谢你的评论!实际上,这个代码是错误的。如果代码中有一行且只有一行的所有值都为null,则将返回该行,否则将返回null。这不是答案。好吧,我明白了。无论如何,谢谢你的评论!