我有一个帐户对象,例如:
public class Account
{
public int Id { get; set; }
public List<Elegibilities> Elegibilities { get; set; }
}
public class Elegibilities
{
public int Id { get; set; }
public string Label { get; set; }
public bool Value { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我的存储库返回帐户列表。List<Account>
我想按其中的项目进行分组和计数,Elegibilities输出如下:
{
Total: 30,
[
{
Id : 1,
Label: "Elegibility1",
Count: 10
},
{
Id : 2,
Label: "Elegibility2",
Count: 20
}
]
}
Run Code Online (Sandbox Code Playgroud)
我遇到问题,因为它是另一个列表中的列表。
是否可以通过单个 LINQ 查询来解决?
看来您不需要任何与帐户相关的数据,
这为您提供了一个简单的平面列表供您使用。
var flatList = accounts.SelectMany(a => a.Elegibilities);
Run Code Online (Sandbox Code Playgroud)
如果您需要将帐户相关数据包含到输出中,这可能是另一个示例。
var group = from a in accounts
from el in a.Elegibilities
group el by el.Id into elGroup
select new
{
Id = elGroup.Key,
Count = elGroup.Count(),
Label = elGroup.First().Label
};
Run Code Online (Sandbox Code Playgroud)
最后您可以访问您的小组总计。
var result = new { Totals = group.Count() , Elegibilities = group.ToList() };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |