首页 > 解决方案 > 如何检查 IQueryable 元素/项目是否包含 C# 中的属性?

问题描述

我有一个IQueryable如下

var issues = from i in jira.Issues.Queryable
             where i.Project == project.Key
             orderby i.Created
             select i;

我正在尝试计算问题类型是Bug这样的:

TotalIssues = issues.ToList().Where(i => i.Type.Name == "Bug").Count();

这里的问题是有些问题没有类型。如何检查问题类型是否存在?

标签: c#linq

解决方案


你不想要没有类型的问题。您可以通过不考虑没有类型的问题来保持代码简单。

var bugsCount = issues.AsEnumerable()
    .Where(issue => issue.Type != null)
    .Count(issue => issue.Type.Name == "Bug");

您可以根据需要链接尽可能多的.Where子句,项目仍将仅枚举一次。


推荐阅读