如何使用计算值创建匿名类型

nlo*_*ios 2 c# linq

假设我有这样的结构:

class Ticket
{
 int Id;
 bool Void;
}
Run Code Online (Sandbox Code Playgroud)

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

select new {totalVoid = numVoidTickets, totalNonVoid = numNonVoidTickets};
Run Code Online (Sandbox Code Playgroud)

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

from t in Tickets
select new { totalVoid = t.Id.Count(x => x.Void == true, 
totalNonVoid = t.Id.Count(x => x.Void == false };
Run Code Online (Sandbox Code Playgroud)

但智能感知没有显示COUNT()之后I型t.Id也不t.

Ale*_*kov 7

t 是表达式中的单个项目.

你不需要outer Select/'from`来获取这些信息:

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