繁体   English   中英

如何知道我的linq查询是否返回null

[英]how to know if my linq query returns null

我有这个linq查询:

var myQuery = from Q in myDataContext
          select Q.Name

当我尝试这样做时:listView.ItemsSource = myQuery

它有时会引发异常,因为myQuery中没有元素

我尝试了很多方法: if(myQuery.count!=0)if(myQuery.Any())但没有任何效果,那么如何判断我的Query是否返回null?

您可以将结果显示为列表:

var myQuery = (from Q in myDataContext select Q.Name).ToList();

现在您可以检查项目数量:

if (myQuery.Count > 0) ...

您还可以在原始查询上使用Count()方法,但之后您将运行查询两次,一次计算项目,一次使用它们。

LINQ查询永远不应返回null,如果结果为空,则不应该出现异常。 您的代码可能有错误。

看起来您发布的代码缺少表名。 您确定您发布的代码是给您带来问题的代码吗?

您可以将其转换为列表,然后检查计数

var result = (from Q in myDataContext select Q.Name).ToList();
if(result.Count > 0)
{
 // Perform some operation
}

或者您可以执行空检查,因为默认情况下,linq查询返回null而不是空列表。

var result = (from Q in myDataContext select Q.Name);
if(result != null)
{
 // Perform some operation
}

最好的方法是检查列表中是否为null(无项目)使用Any()而不是count()

var myQuery =(来自myDataContext中的Q选择Q.Name).ToList(); 现在您可以检查项目数量:

if(myQuery.Any())...

你可以试试这个

var myQuery = from Q in myDataContext
if(myQuery != null ) 
{
  // TO SOME THING HERE
}

或者你可以另外检查,如果结果中有列表

var myQuery = from Q in myDataContext
if(myQuery != null && myQuery.Count > 0  ) 
{
  // TO SOME THING HERE
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM