私はこのように似たDataTableを持っています。
大人の値と子供の値が同じ場合。私はそれを削除してそれを数える必要があります。このような出力が必要です。
誰でもこれについて私を助けてもらえますか???.
ありがとうございました、
大人+子供でグループ化したい:
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
。
完全なコードは書きませんが、推奨される方法を説明します。最初に大人と子供でデータテーブルを並べ替えます。これにより、同じ行が連続し、削除する行を埋めるリストを作成してから、foreach を使用します。各行を前の行と比較し、値が同じ場合は削除する行のリストに追加し、最後にリスト内の行を削除します