13

次のレコードを持つ「DTHead」という DataTable があります。

 MIVID      Quantity         Value
------     ----------       --------
   1           10             3000
   1           20             3500
   1           15             2000
   2           20             3000
   2           50             7500
   3           25             2000

ここで、上記の DataTable を次のような MIVID に基づいて 3 つのテーブルに分割する必要があります。

DTChild1:

  MIVID           Quantity        Value
 -------         ----------     ---------
   1                10             3000
   1                20             3500
   1                15             2000

DTChild2:

  MIVID           Quantity        Value
 -------         ----------     ---------
   2                20             3000
   2                50             7500

DTChild3:

  MIVID           Quantity        Value
 -------         ----------     ---------
    3               25             2000

Header DataTable に 4 つの異なる MIVID 手段が含まれている場合、MIVID に基づいて 4 つの Child DataTable を作成する必要があるとします。これを行う方法?

4

2 に答える 2

30

を使用LINQ to DataTableして最初の列をグループ化しGroupBy、メソッドCopyToDataTableを使用して行のリストをDataTable

 List<DataTable> result = DTHead.AsEnumerable()
            .GroupBy(row => row.Field<int>("MIVID"))
            .Select(g => g.CopyToDataTable())
            .ToList();

その後、期待どおりに結果を DataTables のリストとして取得できます。

于 2012-10-05T06:03:11.723 に答える