我有一个DataTable:
Position Price
1 1.2
1 1.3
2 1.25
1 1.4
1 1.3
2 1.35
我想返回位置已更改的所有行:
Position Price
2 1.25
1 1.4
2 1.35
使用Linq有一种优雅的方式吗?
我试过了:
var trades = Enumerable.Range(1, Data.Rows.Count - 1)
.Where(i => !Data.Rows[i].Field<string>("Position").Equals(Data.Rows[i - 1].Field<string>("Position")));
但这会返回索引列表,而不是行。
答案 0 :(得分:4)
使用LINQ:
var positionChanges = table.AsEnumerable()
.Skip(1)
.Where((row, index) => table.Rows[index - 1].Field<string>(0) != row.Field<string>(0));