如何将数据表记录转换为自定义类
本文关键字:自定义 转换 记录 数据表 | 更新日期: 2023-09-27 18:31:46
我有以下记录的数据表
Columns -> A B C D E
Rows-> 1 2 3 X Y
1 2 3 P Q
我希望此数据表转换为我的自定义列表,如下所示
MyClass
{
int A
int B
int C
List<ChildClass>
}
ChildClass
{
String D
String E
}
我正在使用以下代码来制作它,但我卡在儿童课之间。请帮忙?
IList<MyClass> items = dt.AsEnumerable().Select(row =>
new MyClass
{
A= row.Field<int>("A"),
B= row.Field<int>("B"),
C= row.Field<int>("C"),
}).ToList();
你应该使用 GroupBy
.如下所示。
IList<MyClass> items = dt.AsEnumerable().GroupBy(
row =>
new
{
A = row.Field<int>("A"),
B = row.Field<int>("B"),
C = row.Field<int>("C"),
},
(key, values) =>
new MyClass
{
A = key.A,
B = key.B,
C = key.C,
Children = values.Select(row =>
new ChildClass
{
D = row.Field<string>("D"),
E = row.Field<string>("E"),
}).ToList()
}).ToList();
在您的示例中,这将导致一个 MyClass
对象(属性值为 1、2、3)包含两个ChildClass
对象(属性值分别为 X、Y 和 P、Q)。
xyz.Select(row=> new Class1
{
A = row.Field<int>("A"),
B = row.Field<int>("B"),
C = row.Field<int>("C"),
list = xyz.Select(row1=> new ChildClass
{
D = row1.Field<int>("D"),
E = row1.Field<int>("E")
}).ToList()
});
假设您有一个数据 xyz 列表。试试这个它有效。