0

私はこのように似たDataTableを持っています。ここに画像の説明を入力

大人の値と子供の値が同じ場合。私はそれを削除してそれを数える必要があります。このような出力が必要です。

ここに画像の説明を入力

誰でもこれについて私を助けてもらえますか???.

ありがとうございました、

4

2 に答える 2

2

大人+子供でグループ化したい:

var groups = tblRoooms.AsEnumerable()
    .GroupBy(r => new{ Adults = r.Field<int>("Adults"), Child = r.Field<int>("Child") });

var tblRooomsCopy = tblRoooms.Clone();  // creates an empty clone of the table
foreach(var grp in groups)
{
    int roomCount = grp.Sum(r => r.Field<int>("Roomcount"));
    DataRow row = tblRooomsCopy.Rows.Add();
    row.SetField("RoomNo", grp.First().Field<int>("RoomNo"));
    row.SetField("Roomcount", roomCount);
    row.SetField("Adults", grp.Key.Adults);
    row.SetField("Child", grp.Key.Child);
}

これで、目的の結果が にありますtblRooomsCopy

于 2013-09-19T07:09:27.030 に答える
0

完全なコードは書きませんが、推奨される方法を説明します。最初に大人と子供でデータテーブルを並べ替えます。これにより、同じ行が連続し、削除する行を埋めるリストを作成してから、foreach を使用します。各行を前の行と比較し、値が同じ場合は削除する行のリストに追加し、最後にリスト内の行を削除します

于 2013-09-19T07:04:02.487 に答える