0

我有类似这样的数据表。在此处输入图像描述

如果成人值和儿童值相同。我需要删除它并计算它。我需要一个类似这样的输出。

在此处输入图像描述

谁能帮我解决这个问题???

谢谢,

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 回答