C# - 检查由DataTable上的linq查询返回的RESULT是否有行

Cem*_*mre 0 c# linq datatable resultset

我通常使用linq查询数据表来过滤数据,例如:

var plan = from p in planData.AsEnumerable()
let rnk = p.Field<decimal?>("RANK")
let spd = p.Field<string>("SPEED")
where rnk.HasValue
&& rnk == Convert.ToInt32(rank)
   && spd == speed
select p;
Run Code Online (Sandbox Code Playgroud)

数据表在哪里planData.问题是我没有简单的方法来检查结果是否返回任何内容.我根本不能在变量上使用任何有用的方法(比如ToList,AsEnumerable)plan.我所能做的只是尝试循环,看看是否有任何返回.

我有什么想法可以解决这个问题吗?也许还有另一种从数据表中选择数据的方法?

jim*_*lan 8

使用内置测试:

if(plan.Any())
{
   //... do stuff
}
Run Code Online (Sandbox Code Playgroud)

你也可以使用漂亮的小覆盖来测试Any()中项目的存在.即:

if(plan.Any(x => x.IsValid))
{
   //... do stuff
}
Run Code Online (Sandbox Code Playgroud)

精彩的小延伸.

[更新] -包括using System.Linq;使用也