DataTable检查行是否在集合中的最后一行

时间:2015-05-11 14:58:20

标签: c# datatable

说我有这样的DataTable:

D的状态是DataViewRowState.Deleted,并且假设O是未被触摸的行

index: 0 | state: O  
index: 1 | state: O  
index: 2 | state: O  
index: 3 | state: D
index: 4 | state: D

假设我删除索引2处的行(我将行状态设置为已删除)。有没有办法知道索引1处的行是否是集合中最后一个未删除的行而没有“向前走”并检查索引1之后每个记录的行状态?

1 个答案:

答案 0 :(得分:2)

您可以使用LINQ:

int deletedIndex = 2;
DataRow firstNonDeletedBeforeDeletedIndex = table.AsEnumerable()
    .Where((row, index) => index < deletedIndex && row.RowState != DataRowState.Deleted)
    .LastOrDefault(); // null if none found