将对象列表转换为另一个对象列表

本文关键字:列表 一个对象 转换 对象 | 更新日期: 2023-09-27 18:27:30

我有一个列表

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

Vachel列表作为

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();