C# 使用Linq和Group by将数据表转换为对象
我尝试将datatable转换为具有特殊格式的JSON 数据表中的数据如下C# 使用Linq和Group by将数据表转换为对象,c#,linq,C#,Linq,我尝试将datatable转换为具有特殊格式的JSON 数据表中的数据如下 col1 col2 col3 col4 --------------------- A B c D1 A B c D2 A B c D3 尝试将其转换为对象数组,如 class obj { var col1; var col2; var col3; list<string> col4; } var result=来自dt.AsEnumer
col1 col2 col3 col4
---------------------
A B c D1
A B c D2
A B c D3
尝试将其转换为对象数组,如
class obj {
var col1;
var col2;
var col3;
list<string> col4;
}
var result=来自dt.AsEnumerable()中的行
按“新建”分组行
{
c1=r.字段(“col1”),
c2=r.字段(“col2”),
c3=r.字段(“col3”)
}分段
选择新的
{
col1=第.Key.c1节,
col2=第.Key.c2节,
col3=第.Key.c2节,
col4=section.Select(r=>r.Field(“col4”)).ToList()
};
col4=section.Select(r=>r.Field(“col4”)).ToList()会更好。@TimSchmelter你说得对,谢谢!实际上,对于分组键,我们也可以使用字段
扩展名(假设其他列也有字符串数据),感谢您的快速响应!
var result = from row in dt.AsEnumerable()
group row by new
{
c1 = row["col1"],
c2 = row["col2"],
c3 = row["col3"]
}
into section
select new
{
item = section.Key
};
var result = from row in dt.AsEnumerable()
group row by new
{
c1 = r.Field<string>("col1"),
c2 = r.Field<string>("col2"),
c3 = r.Field<string>("col3")
} into section
select new
{
col1 = section.Key.c1,
col2 = section.Key.c2,
col3 = section.Key.c2,
col4 = section.Select(r => r.Field<string>("col4")).ToList()
};