c# - 计算数组中的项目,除了等于 -1 的值

标签 c# .net linq count linq-to-entities

我有这个 LINQ 到实体:

int siteNumbers = g.Select(x => x.siteId).ToArray().Distinct().Count()

例如:

x.siteId-1 我不想计算该值,即我只想计算不等于 - 的值1

x:[1,2,6,-1]siteNumbers 值为 3。

x:[-1]siteNumbers 值为 0。

我必须在上面的查询中更改什么才能实现它?

最佳答案

您可以利用 Where LINQ 中的子句:

int siteNumbers = g.Where(x => x.siteId != -1)
                   .Select(x => x.siteId)
                   .Distinct()
                   .Count();

您还可以删除 .ToArray(),因为它是冗余的。

工作示例: https://ideone.com/LvOe0i

关于c# - 计算数组中的项目,除了等于 -1 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33710215/

相关文章:

c# - 发布两个不同版本应用程序的工作流程

c# - 在 C# 中引用时,VB 程序集中的默认公共(public)只读属性未出现

c# - 使用 LINQ 创建等待任务

.net - GroupBy 来自日期时间变量的日期

c# - 如何强制 WebService 引用实现公共(public)接口(interface)?

c# - 使用 C# 管理大型数据库

c# - WPF 只能打开一个窗口?

C# LINQ First() 比 ToArray()[0] 更快?

c# - 动态设置每个 Logger 实例的 Nlog 日志级别 ASP.Net Core 2.x

C# 抽象基类 - 扩展实现