c# - 如何创建具有计算值的匿名类型

标签 c# linq

假设我有这个结构:

class Ticket
{
 int Id;
 bool Void;
}

是否可以使用 LINQ 获得具有这两个聚合属性的匿名类型?

select new {totalVoid = numVoidTickets, totalNonVoid = numNonVoidTickets};

我认为这可能是一种方法:

from t in Tickets
select new { totalVoid = t.Id.Count(x => x.Void == true, 
totalNonVoid = t.Id.Count(x => x.Void == false };

但在我键入 t.Idt 后,intellisense 不显示 Count()。

最佳答案

t 是您表达式中的单个项目。

您不需要外部 Select/'from` 来获取此信息:

var result = new 
{ 
  totalVoid = Tickets.Count(x => x.Void == true), 
  totalNonVoid = Tickets.Count(x => x.Void == false)
};

关于c# - 如何创建具有计算值的匿名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33679266/

相关文章:

linq - .NET 4.0 中有序列运算符实现吗?

c# - 如何使用 LINQ 从选择中返回一行?

c# - 为此 : 使用 linq

c# - 只获取第一个项目与 SyndicateItem/foreach 的替代品

c# - 如果图像丢失则加载默认图像

c# - EventLog 记录在应用程序中,即使设置为另一个日志

c# - 为什么在 Linq 表达式中使用 String.contains 时不需要括号?

c# - 这些构造函数中的虚拟成员调用警告是否合法?

c# - 为什么这段代码返回不同的值? (C# 和 VB.NET)

c# - 使用防伪 token 模拟 Windows 用户