C# 检查是否没有返回数据行
我有这样一个选项,用于检查与表达式匹配的数据行:C# 检查是否没有返回数据行,c#,linq,if-statement,datatable,C#,Linq,If Statement,Datatable,我有这样一个选项,用于检查与表达式匹配的数据行: DataRow[] foundRows = this.callsTable.Select(searchExpression); 我如何检查它是否返回了一些数据行,所以基本上如果它不返回任何数据行,则不执行if函数中的操作 我试过: if (foundRows != null) { } 您可以使用数组的Length属性检查是否有行 if (foundRows.Length == 0) 您可以使用LINQ执行以下操作 var areThere
DataRow[] foundRows = this.callsTable.Select(searchExpression);
我如何检查它是否返回了一些数据行,所以基本上如果它不返回任何数据行,则不执行if函数中的操作
我试过:
if (foundRows != null) { }
您可以使用数组的
Length
属性检查是否有行
if (foundRows.Length == 0)
您可以使用LINQ执行以下操作
var areThereAny = foundRows.Any();
var count = foundRows.Count();
如果只想确定是否有符合条件的行,可以执行以下操作:
var anyThatMatch = this.callsTable.Any(selectCondition);
您可以使用计数方法来验证:
if (foundRows.Count() == 0)
像这样检查数组的长度
if (foundRows.Length > 0)
{
//Your code here
}
或者也可以使用Count()进行检查
你检查过你的解决方案了吗
foundRows
是一个数组,不能使用Count
方法,需要检查数组的长度。是的,Soner是正确的。方法Count()与属性Count不同。出于好奇,访问length属性是否比调用Count()更快?我想是的,但我不确定。@NWardCount()
尽可能优化。从中,如果源类型实现了ICollection
,则该实现用于获取元素的计数。否则,此方法将决定计数。长度似乎更快,因为它不是一个方法,而是一个属性。但在我看来,它在get期间执行一些操作(不仅仅是从变量中获取一些值)。所以,基本上是一样的。
if (foundRows.Count() > 0)
{
//Your code here
}