C# DataTable检查行是否为集合中的最后一行

C# DataTable检查行是否为集合中的最后一行,c#,datatable,C#,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处的行(我将行状态设置为deleted)。有没有一种方法可以知道索引1处的行是否是集合中最后一个未删除的行,而无需“向前走”并检查索引1后每条记录的行状态?您

假设我有这样一个数据表:

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处的行(我将行状态设置为deleted)。有没有一种方法可以知道索引1处的行是否是集合中最后一个未删除的行,而无需“向前走”并检查索引1后每条记录的行状态?

您可以使用LINQ:

int deletedIndex = 2;
DataRow firstNonDeletedBeforeDeletedIndex = table.AsEnumerable()
    .Where((row, index) => index < deletedIndex && row.RowState != DataRowState.Deleted)
    .LastOrDefault(); // null if none found
int deletedIndex=2;
DataRow firstNonDeletedBeforeDeletedIndex=table.AsEnumerable()
.Where((行,索引)=>index
“向前走”意味着“向后走”,因为您想在已删除的子类datagridview之前找到第一个未删除的?并存储此信息?