C# 在IEnumerable查询中显示所有空字段

C# 在IEnumerable查询中显示所有空字段,c#,.net,linq,ienumerable,dbnull,C#,.net,Linq,Ienumerable,Dbnull,我有以下(简单)表格: 表:MyDataTable **Color** Blue null Red Yellow null null Green 此查询(例如): 查询= 来自MyDataTable.AsEnumerable()中的用户 其中(user.Field(“Color”)!=null?user.Field(“Color”)。包含(“”:false) 选择用户; 显示所有非空字段 编辑:对不起,我的问题在标题中。我想做一个只显示空字段的查询。 怎么用? 问候 删除where子句: v

我有以下(简单)表格:

表:MyDataTable

**Color**
Blue
null
Red
Yellow
null
null
Green
此查询(例如):

查询=
来自MyDataTable.AsEnumerable()中的用户
其中(user.Field(“Color”)!=null?user.Field(“Color”)。包含(“”:false)
选择用户;
显示所有非空字段

编辑:对不起,我的问题在标题中。我想做一个只显示空字段的查询。 怎么用?
问候

删除
where
子句:

var query = from user in MyDataTable.AsEnumerable()
            select user;
或者简单地说:

var query = MyDataTable.AsEnumerable();
我想查询以显示所有字段(包括空字段)

要显示所有内容,只需直接使用表格:

query = MyDataTable.AsEnumerable();
请注意,您可以使用
String.IsNullOrEmpty
简化现有查询:

query =
   from user in MyDataTable.AsEnumerable()
   where !string.IsNullOrEmpty(user.Field<string>("Color"))
   select user;
查询=
来自MyDataTable.AsEnumerable()中的用户
哪里string.IsNullOrEmpty(user.Field(“Color”))
选择用户;

为此,请删除from和select子句
MyDataTable.AsEnumerable()
是您所需要的一切。非常感谢您的帮助。是的,这段代码显示了所有字段,但我不能只显示空字段。为什么需要编写查询来返回数据集中的所有内容?这听起来像是在浪费CPU周期什么都不做。因为这是一个简单的查询,所以这是一个简单的例子。我的应用程序有一个更复杂的查询。我的应用程序(默认情况下)仅显示10个项目。Null字段在查询中生成异常,并且Null字段不会显示在DataGridView中。Null不会在查询中生成异常。当您尝试在DataGridView中显示它时,它可能会显示。在这种情况下,您需要像
value??“null”
这基本上是指添加项目的
if(value==null)value=“null”
。关键是这里没有要写的查询,您只需调用
AsEnumerable()
AsEnumerable().ToList()
.ToArray()
来转换您的dt。非常感谢您的帮助。此查询生成一个异常:where(user.Field(“Color”).Contains(“lu”))NullExceptions由于您试图对空值调用
Contains
,因此您将获得一个NullReferenceException。这与您的查询无关。代码恰好在查询中,但它不是特定于它的,您不能在C#中的任何地方调用null的方法或访问null的属性。在打电话之前加一张支票。
query =
   from user in MyDataTable.AsEnumerable()
   where !string.IsNullOrEmpty(user.Field<string>("Color"))
   select user;