Linq query to get the distinct values in a list

后端 未结 7 1863
攒了一身酷
攒了一身酷 2021-02-08 22:34

Suppose this is my member class

class Member 
{
    public string CategoryId { get; set; }
    public string MemberName { get; set; }
    public int Distance { g         


        
7条回答
  •  刺人心
    刺人心 (楼主)
    2021-02-08 23:11

    Group the list into categories, then order each grouping by distance, taking the first item (the lowest distance). Project the results into a new Member collection.

    var query = from member in list 
                group member by member.CategoryId into memberGrouping
                let groupedMember = memberGrouping.OrderBy (mg => mg.Distance).First() 
                select new Member()
                { 
                  CategoryId = memberGrouping.Key, 
                  MemberName = groupedMember.MemberName, 
                  Distance = groupedMember.Distance 
                };
    

提交回复
热议问题