如果没有数据行与linq查询中的条件匹配,如何避免错误?

时间:2014-03-22 17:51:09

标签: c# linq asp.net-4.0

我根据以下条件代码选择工作站

var NStations = stations.AsEnumerable()
                        .Where(r => r.Field<double>("Distance") < SP_Radius)
                        .OrderBy(r => r.Field<double>("Distance"))
                        .CopyToDataTable();

如果没有数据与第一个条件匹配,问题就出现了,我将得到错误停止程序。

如果没有检索到数据行,我怎样才能避免这个问题?

错误:

  

源不包含DataRows。

检查第一个条件,然后转到第二个条件,命令它给出上述错误。

1 个答案:

答案 0 :(得分:3)

您可以将查询分为两部分:

var result = stations.AsEnumerable()
             .Where(r => r.Field<double>("Distance") < SP_Radius);

if(result.Any())
{ 
   var NStations = result.OrderBy(r => r.Field<double>("Distance"))
                         .CopyToDataTable();
}