我做了一个C#LINQ查询,按属性对(或组)进行分类,我几乎可以肯定有更好的方法.我的项目充满了这些查询,所以我真正感兴趣的是如何以正确的方式实现这一目标.
这是我的查询的样子:
var g = _repository.GetEmployees();
var result =
g.GroupBy(x => x.City, (key, group) => group.First())
.Select(x => new {
city = x.City,
employees = g
.Where(y=>y.EmployeeID == x.EmployeeID)
.Select(y=> new {
fullname = y.FirstName + " " + y.LastName,
title = y.Title
})
.OrderBy(y=>y.fullname)
})
.OrderBy(x => x.city);
Run Code Online (Sandbox Code Playgroud)
JSON输出示例:
[
{
"city":"Barcelona",
"employees":[
{
"fullname":"Foo Bar",
"title":"Help Desk Technician"
},
{
"fullname":"Lorem Ipsum",
"title":"Information Technology Director"
}
]
},
{
"city":"London",
"employees":[
{
"fullname":"Le Query",
"title":"Information Technology Manager"
}, …Run Code Online (Sandbox Code Playgroud)