获取下一个该行将该行与DataTable.Select有()(Get the row next to

2019-10-16 14:27发布

我有一个数据DataTable对象:

Id Value
1   val1
3   val2
2   val3

我选择一个行未来的方法:

 table.Select("Id=1");

该查询给我行

 1 val1

而接下来我要带旁的一个,即鳞次栉比

 3 val2

我能做到这一点不知何故? 可能吗? 也许有类似行的表中的位置,我可以使用通过增加此值来选择下一行?

Answer 1:

DataTable.Rows.IndexOf()是我能想到的唯一的事情。

怎么样:

var rows=table.Select("Id=1");
var indexOfRow=table.Rows.IndexOf(rows[0]); //since Id only 1 match

var nextRow=table.Rows[indexOfRow+1];

例:

    DataTable dt = new DataTable();
    dt.Columns.Add("ID", typeof (int));
    dt.Columns.Add("AnotherID", typeof(int));
    dt.Columns.Add("Content", typeof(string));
    dt.PrimaryKey = new[] {dt.Columns["ID"]};

    // Add some data
    dt.Rows.Add(1, 10, "1");
    dt.Rows.Add(2, 11, "2");
    dt.Rows.Add(3, 12, "3");
    dt.Rows.Add(4, 13, "4");

    var index = dt.Rows.IndexOf(dt.Rows.Find(3));

    // index is 2

    Console.WriteLine(dt.Rows[index+1]);

输出Linqpad

的DataRow
ID 4
AnotherID 13
内容4

希望帮助



文章来源: Get the row next to the row got with DataTable.Select()