c#如何检查查询结果是否为空而不是null

时间:2020-07-28 10:51:52

标签: c# linq blazor

我正在构建Blazor应用并查询数据库

var abcGetTblOppDetailsResult = await Abc.GetTblOppDetails(new Query() { Filter = $@"i=>i.OpportunityID=={args.OpportunityID}" });
            tblOppDetails = ecosysGetTblOppDetailsResult;

我正在使用tblOppDetails中的结果填充组件。

当查询未返回时,如何检查tblOppDetails是否为空?我已经尝试过==null,但是即使没有数据,它也不为空,所以我被卡住了。

我尝试检查是否count = 0,但是我从智能感知中尝试的每个方法都告诉我:

error CS0428: Cannot convert method group 'Count' to non-delegate type 'object'. Did you intend to invoke the method?

请有人帮忙吗?

谢谢

约翰

2 个答案:

答案 0 :(得分:2)

错误说明了一切。你可能正在做

if (result.Count == 0) {
    ...
}

,但Count上没有属性result。使用

if (result.Count() == 0) {
    ...
}

调用错误消息所引用的Linq扩展方法Count()

答案 1 :(得分:2)

按照错误所述,结果有一个名为Count()的方法,您可能将其用作Count

因此它将如下所示:

var hasItems = result.Count() > 0;