2

次のレコードを持つデータテーブルがあります

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
}

次のコードを使用して作成していますが、childclass の間で立ち往生しています。助けてください?

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

2 に答える 2

0
 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 のリストがあるとします。これを試してみてください。

于 2013-09-19T04:06:07.637 に答える
0

を使用する必要があります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();

あなたの例では、これにより、1 つのMyClassオブジェクト (プロパティ値 1、2、3) とChildClassその内部に 2 つのオブジェクト (それぞれプロパティ値 X、Y および P、Q) が生成されます。

于 2013-09-18T18:43:34.267 に答える