我有这个linq查询:
var myQuery = from Q in myDataContext
select Q.Name
当我尝试这样做时: listView.ItemsSource = myQuery
它有时会引发异常,因为myQuery
我尝试了很多方法:if(myQuery.count!=0)
或if(myQuery.Any())
但没有任何效果,那么如何判断我的Query是否返回null?
答案 0 :(得分:17)
您可以将结果视为列表:
var myQuery = (from Q in myDataContext select Q.Name).ToList();
现在您可以检查项目数量:
if (myQuery.Count > 0) ...
您还可以在原始查询中使用Count()
方法,但之后您将运行查询两次,一次计算项目,一次使用它们。
答案 1 :(得分:4)
LINQ查询永远不应返回null,如果结果为空,则不应该出现异常。您的代码可能有错误。
看起来您发布的代码缺少表名。你确定你发布的代码是给你问题的代码吗?
答案 2 :(得分:2)
您可以将其转换为列表,然后检查计数
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
}
答案 3 :(得分:0)
你可以试试这个
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
}
答案 4 :(得分:0)
最好的方法是检查列表中是否为空(没有项目)使用Any()而不是count()
var myQuery =(来自myDataContext中的Q选择Q.Name).ToList(); 现在您可以检查项目数:
if(myQuery.Any())...