【问题标题】:c# how to check if query result is empty as opposed to nullc#如何检查查询结果是否为空而不是null
【发布时间】:2020-07-28 22:03:05
【问题描述】:

我正在构建一个 Blazor 应用程序并正在查询数据库

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

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

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

我尝试检查 teh count = 0 但我从智能感知中尝试的每个方法都告诉我以下信息:

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

有人可以帮忙吗?

谢谢

约翰

【问题讨论】:

  • 你使用的是.Count还是.Count()
  • ?tblOppDetails.Count 错误 CS0428:无法将方法组“计数”转换为非委托类型“对象”。您是否打算调用该方法?
  • .Count() 给了我一个信息列表,所以我想这是要追求的,谢谢
  • 知道了。Count()==0 给出了我想要的答案。非常感谢您的帮助
  • @Umair,我看不出如何给你答案,我的屏幕上除了标记或点赞之外什么都没有。

标签: c# linq blazor


【解决方案1】:

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

所以它会像下面这样:

var hasItems = result.Count() > 0;

【讨论】:

    【解决方案2】:

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

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

    result 上没有属性Count。使用

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

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

    【讨论】:

      猜你喜欢
      • 2013-05-09
      • 2014-04-13
      • 2017-12-14
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多