0

我有一个DataTable(dtProperty)包含以下列:

  1. 属性 ID,
  2. 项目清单
  3. 房间号,
  4. 费率标识,
  5. 房间序列

我有 2 个变量 RoomCount 和 PID,它们的值对于 PropertyId、RoomId、RateId 的特定组合是已知的,Roomsequence 的所有值都应该小于等于 RoomCount。

如果 RoomCount 的值为 3 且 PID=10212,那么对于 PropertyId、RoomId、RateId ::10212,2010,3101(在我们的示例中)的特定值,RoomSequence 的值应为 1、2、3。

如果 PropertyId、RoomId、RateId 的任何特定组合不满足标准,那么我们

应该丢弃数据表中的行。

在下表中,我们将只保留前 3 行和后 3 行

PropertyId  RoomID  RateID   RoomSequence
10212       2010    3101     1
10212       2010    3101     2
10212       2010    3101     3
10212       2011    3100     3
10212       2012    3101     1
10212       2012    3101     2
10212       2014    3101     1
10212       2014    3101     2
10212       2014    3101     3
4

1 回答 1

0
    var filteredTable = (from row in dtRoom.AsEnumerable()
      where row.Field<int>("RoomSequence") <=
      GetRoomCount(row.Field<int>("PropertyId"), 
                   row.Field<int>("RoomId"), 
                   row.Field<int>("RateID"))
    select row); //ToDataTable()

这应该会根据您的房间顺序过滤器为您提供一个包含数据的新数据表。当然,您应该根据 3 个值
从方法内部返回 RoomCount 。GetRoomCount

于 2012-09-12T13:33:03.093 回答