c#LINQ查看ISingleResult返回多少行帮助!

Tan*_*Tan 4 c#

您正在使用ISingleResult与存储过程.如果Isingler是空的,我如何检查C#.因为有时候SP什么也不返回,有时则返回数据.

无论如何,ISingleResult包含多少行.感谢帮助.

Jos*_*are 11

您可以将结果转换为列表(使用LINQ ToList方法)或数组(使用ToArray),然后从那里检查计数/长度.

List<T> result = YourStoredProcedureCall().ToList();

if (result.Count > 0) 
{
    // Deal with results here
}
Run Code Online (Sandbox Code Playgroud)

正如Cullen的回答所提到的,您可以使用Count()方法获取返回结果的数量.请注意,这将在内部迭代列表以计算计数,如果您只是想确定是否有1个或更多结果,则这不是最佳的.

注意:

对于其中任何一个,请确保您的源文件中包含以下using语句:

using System.Linq;
Run Code Online (Sandbox Code Playgroud)

编辑说明:

我最初建议直接在ISingleResult结果上使用Any()方法,但这很可能会导致一个异常,说' 查询结果不能多​​次枚举 '.如果你然后尝试再次枚举ISingleResult.首先转换为数组或列表可以避免此异常.从那里,您仍然可以在数组/列表上使用Any(),或者您可以直接评估Count或Length属性,如代码示例所示.