假设这是我的成员类
class Member
{
public string CategoryId { get; set; }
public string MemberName { get; set; }
public int Distance { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
而且,这是列表.
var list = new List<Member>();
list.Add(new { CategoryId = "01", MemberName="andy" Distance=3});
list.Add(new { CategoryId = "02", MemberName="john" Distance=5});
list.Add(new { CategoryId = "01", MemberName="mathew" Distance=7});
list.Add(new { CategoryId = "03", MemberName="bakara" Distance=2});
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议逻辑/ linq查询,以使List具有最短距离的不同/唯一categoryID.
本output
应该是:
list.Add(new { CategoryId = "01", MemberName="andy" Distance=3});
list.Add(new { CategoryId = "02", MemberName="john" Distance=5});
list.Add(new { CategoryId = "03", MemberName="bakara" Distance=2});
Run Code Online (Sandbox Code Playgroud)
Kja*_*tan 22
这应该给你你需要的东西:
var grouped = list.GroupBy(item => item.CategoryId);
var shortest = grouped.Select(grp => grp.OrderBy(item => item.Distance).First());
Run Code Online (Sandbox Code Playgroud)
它首先将项目分组CategoryId
,然后从每个组中选择第一个(按顺序排列Distance
).
归档时间: |
|
查看次数: |
65922 次 |
最近记录: |