今天有个特别的需求,通过Linq筛选DataTable行的时候,需要用到行号,DataRow对象没有行号这个属性。
其实我们可以通过Datatable.Rows.IndexOf(DataRow) 来获取DataRow在DataTable中的行号。
其他使用范围:比如用foreach循环,DataTable.Select() 等方法取得对应的DataRow时候都没有办法获取行号(row index), 都可以通过Datatable.Rows.IndexOf(DataRow)来获得。
var q1 = from r in dt.AsEnumerable()
where r.Field<int>("ID") %2 == 0
select new ScatterDataPair(
dt.Rows.IndexOf(r),
r.Field<float>("Weight"),
r.Field<float>("Weight"),
r.Field<int>("Age"),
r.Field<int>("Age")
);