C# 设置列表数据合并列的格式
例如,如何使用LINQ和按GroupId对以下记录进行分组(从而将每组中的所有行合并为一行) 请让我知道如何使用分隔逗号添加这些值。不添加这些值预期结果是: 需要输出:C# 设置列表数据合并列的格式,c#,linq,C#,Linq,例如,如何使用LINQ和按GroupId对以下记录进行分组(从而将每组中的所有行合并为一行) 请让我知道如何使用分隔逗号添加这些值。不添加这些值预期结果是: 需要输出: Id|Name | Father | Number |G-48=/de/sup/sur|L-48/49=de/sup/sur|Uday=de/sup/sur 1 |Farmer1 | FFather1| 9876543210|200,200,150 |150,150,150 |400,400,3
Id|Name | Father | Number |G-48=/de/sup/sur|L-48/49=de/sup/sur|Uday=de/sup/sur
1 |Farmer1 | FFather1| 9876543210|200,200,150 |150,150,150 |400,400,300
3 |Farmer23| FFather3| 9876543210|1212/1212/1210 |2121/2121/2000 |null
请帮助让我知道如何合并此预期结果
我已经试过了,但还没有弄清楚
var data = result.GroupBy(i => i.id).Select(g => new
{
Id= g.Key,
FarmerName = g.Select(i => i.FarmerName ).FirstOrDefault(),
FatherName = g.Select(i => i.FatherName ).FirstOrDefault(),
Number= g.Select(i => i.Number).FirstOrDefault(),
Demand = String.Join(",", g.Select(i => i.Demand)),
Supply= String.Join(",", g.Select(i => i.Supply)),
Survival= String.Join(",", g.Select(i => i.NoOfPlantSurviving)),
}).ToList();
看一眼就知道了。你有什么问题?例如,您得到了什么输出…我需要根据“clone”和concat last this columnsAh创建column name,我明白了,所以您的列的数量是可变的,这取决于有多少行具有相同的ID?你最终用它做什么?您是否将它传递给某个可以循环通过分组行来获取数据的对象,而不是让它为每一个旧行使用一个列,这让我觉得很难做到?我当然想不出一个办法在林克做到这一点。也许还值得编辑您的问题以强调这一要求——当我第一次看到它时,我没有注意到,并假设您正在进行分组和聚合。
var data = result.GroupBy(i => i.id).Select(g => new
{
Id= g.Key,
FarmerName = g.Select(i => i.FarmerName ).FirstOrDefault(),
FatherName = g.Select(i => i.FatherName ).FirstOrDefault(),
Number= g.Select(i => i.Number).FirstOrDefault(),
Demand = String.Join(",", g.Select(i => i.Demand)),
Supply= String.Join(",", g.Select(i => i.Supply)),
Survival= String.Join(",", g.Select(i => i.NoOfPlantSurviving)),
}).ToList();