我有一个清单

class Vachel
{
int id{get;set;}
int vachelid {get;set;}
string title {get;set;}
}


瓦切尔名单


id  vachelid  title
1   2         bus
1   3         truck
2   4         cycle
2   5         bike
2   5         bick


我想将List<Vachel>转换为List<Result>

class Result
{
int id{get;set;}
string vachelid {get;set;}
string title {get;set;}
}


结果必须是

   id   vachelid    title
    1   2,3         bus,truck
    2   4,5         cycle,bike,bick


我尝试了

List<Vachel> V = getList();
List<Result> R = null;
 R = V.GroupBy(x=> new{x.vachelid})
    .Select
       (
       x=> new Result
         {
         id  =x.Key.id,
         vachelid =x.FirstOrDefault().vachelid,
         title   =x.FirstOrDefault().title
         }
       ).ToList();


在这里,我知道我想放一些东西,而不是.FirstOrDefault().vachelid.FirstOrDefault().title,但是我不知道该怎么办。

最佳答案

R = V.GroupBy(x => x.id)
     .Select(g => new Result(){
        id = g.Key,
        vachelid = string.Join(",", g.Select(x => x.vachelid).Distinct()),
        title = string.Join(",", g.Select(x => x.title).Distinct()),
     }).ToList();

关于c# - 将对象列表转换为另一个对象列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18203800/

10-13 08:26