我有一个DataTable
(dtProperty),其中包含以下列:
- 属性ID,
- 列表项
- RoomId,
- RateId,
- Roomsequence
醇>
我有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
答案 0 :(得分: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()
根据您的房间序列过滤器,这应该为您提供一个包含数据的新数据表
当然,你应该从方法GetRoomCount
内部返回RoomCount,这取决于3个值。