使用LINQ排序DataRow[]
本文关键字:DataRow 排序 LINQ 使用 | 更新日期: 2023-09-27 18:16:36
DataRow[] drTest包含System.Data.DataRow
,例如,包含10个DataRow
。在每个DataRow中,我有一个包含Name
和Count
的ItemArray。现在我想对DataRow[] drTest根据ItemArray的第二个记录计数按降序排序。
的例子:
DataRow[] drTest contains
At [0] Index - ItemArray[0] - "A"
- ItemArray[1] - 5
At [1] Index - ItemArray[0] - "B"
- ItemArray[1] - 7
我想按降序排列drTest,这样drTest[1]就会出现
玩LINQ的一个好方法是使用LINQPad。下面是我编写并测试的一个快速示例,以回答您的问题:
var table = new DataTable();
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Count", typeof(int));
table.Rows.Add("A", 5);
table.Rows.Add("B", 7);
table.Rows.Add("C", 1);
table.Rows.Add("D", 8);
table.Rows.Add("E", 9);
table.Rows.Add("F", 6);
table.Rows.Add("G", 3);
table.Rows.Add("H", 2);
table.Rows.Add("I", 4);
var sorted = table.Rows.Cast<DataRow>()
.OrderByDescending(row => row[1]);
// If you are using LINQPad you can test this using the following line:
sorted.Dump();
这应该会给你你正在寻找的:
var result = drTest.OrderByDescending(dr => dr[1]);
您可以使用下面的LINQ查询按降序对条目数组进行排序。
var result = drTest.OrderByDescending(itemArray => itemArray [1]);
或
var result = from row in drtest
orderby row[1] descending
select row;
有关更多信息,请参见LINQ -排序操作符。