[英]Linq query to get the distinct values for repeated id's in a list
假设这是我的会员班
class Member
{
public string CategoryId { get; set; }
public string MemberName { get; set; }
public int Distance { get; set; }
}
而且,这是清单。
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 });
任何人都可以建议逻辑/ linq查询来获取具有唯一/唯一categoryID的列表,其中各个MemberNames用逗号分隔
输出应为:
list.Add(new { CategoryId = "01", MemberName="andy,mathew"});
list.Add(new { CategoryId = "02", MemberName="john"});
list.Add(new { CategoryId = "03", MemberName="bakara"});
您需要按CategoryId
分组,然后为每个组加入MemberName
值,如下所示:
var result =
list.GroupBy(member => member.CategoryId)
.Select(group => new //Do you want an anonymous type or a Member object?
{
CategoryId = group.Key,
MemberName = string.Join(",", group.Select(member => member.MemberName))
})
.ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.