繁体   English   中英

Linq查询以获取列表中重复ID的不同值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM