DataRow [] drTest包含System.Data.DataRow
,比如包含10 DataRow
个。在每个DataRow中,我有一个包含Name
和Count
的ItemArray。
现在我想根据ItemArray第二个记录计数按降序对DataRow [] drTest进行排序。
示例:
DataRow[] drTest contains
At [0] Index - ItemArray[0] - "A"
- ItemArray[1] - 5
At [1] Index - ItemArray[0] - "B"
- ItemArray[1] - 7
我想按降序排序drTest,以便drTest [1]出现。
答案 0 :(得分:4)
使用LINQPad播放LINQ的好方法。这是我编写的一个快速示例,经过测试可以回答您的问题:
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();
答案 1 :(得分:3)
这应该可以满足您的需求:
var result = drTest.OrderByDescending(dr => dr[1]);
答案 2 :(得分:2)
您可以使用以下LINQ查询按降序对项目数组进行排序。
var result = drTest.OrderByDescending(itemArray => itemArray [1]);
或
var result = from row in drtest
orderby row[1] descending
select row;
有关详细信息,您可以浏览 LINQ - Ordering Operators 。