Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何知道我的linq查询是否返回null_C#_.net_Wpf_Linq - Fatal编程技术网

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

C# 如何知道我的linq查询是否返回null,c#,.net,wpf,linq,C#,.net,Wpf,Linq,我有一个linq查询: var myQuery = from Q in myDataContext select Q.Name 当我尝试这样做时: listView.ItemsSource=myQuery 它有时会抛出异常,因为myQuery 我尝试了很多方法,比如:if(myQuery.count!=0)或者if(myQuery.Any()) 但是什么都不起作用,所以如何确定我的查询是否返回null?LINQ查询永远不应该返回null,如果结果为空,您不应该得到异常。您的

我有一个linq查询:

var myQuery = from Q in myDataContext
          select Q.Name
当我尝试这样做时: listView.ItemsSource=myQuery

它有时会抛出异常,因为
myQuery

我尝试了很多方法,比如:
if(myQuery.count!=0)
或者
if(myQuery.Any())

但是什么都不起作用,所以如何确定我的查询是否返回null?

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


您发布的代码似乎缺少表名。你确定你发布的代码就是给你带来问题的代码吗?

你可以通过列表了解结果:

var myQuery = (from Q in myDataContext select Q.Name).ToList();
现在,您可以检查项目数:

if (myQuery.Count > 0) ...
您也可以对原始查询使用
Count()
方法,但随后将运行两次查询,一次用于计算项目,一次用于使用项目。

您可以尝试此方法

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
}

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

var result = (from Q in myDataContext select Q.Name).ToList();
if(result.Count > 0)
{
 // Perform some operation
}
或者您可以执行空检查,因为默认情况下linq查询返回空值,而不是空列表

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.Count > 0) ...

如果(myQuery.Any())…

你说的“没有工作”是什么意思?你犯了什么错误?你能发布你尝试过的代码吗?@Guffa说得对,你错过了一个表名。var myappointmentsqury=来自DC中的myApp。约会在哪里(myApp.Appointment\u Date==datePicker\u showAppointmentDate.SelectedDate&&myApp.Doctor.name==comboBox\u showAppointsDoctor.SelectedItem.ToString())选择新建{myApp.Patient.Name,myApp.Appointment\u Time};如果(MyAppointsQuery.Count()!=0){listView_AppointsList.ItemsSource=MyAppointsQuery;}@Mouayad:应该可以工作了。但是,您应该从UI字段获取输入,并在查询中使用它们之前对它们进行验证。无效输入是代码有时会失败的最有可能的原因。你能用myQuery.Any()代替myQuery.Count>0吗?@EGP:是的,但这只是做同样事情的一个迂回。我想他在描述一个案例,结果是0条记录之后调用ToList()在该查询上会抛出异常。@eranotzer:为什么调用ToList会抛出异常?我很确定它只会返回一个包含零个元素的列表。我需要再次检查这一点,但我记得在对0结果调用泛型ToList()时发生的类似情况引发了异常。关于这件事我会再打给你的。