3

DataRow[] drTest 包含System.Data.DataRow,比如说,包含 10 个DataRow。在每个 DataRow 内部,我都有一个 ItemArray,其中包含NameCount。现在我想根据 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] 就会出现。

4

3 回答 3

6

使用 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();
于 2013-06-03T05:47:08.100 回答
3

这应该给你你正在寻找的东西:

var result = drTest.OrderByDescending(dr => dr[1]);
于 2013-06-03T05:14:01.187 回答
2

您可以使用以下 LINQ 查询按降序对项目数组进行排序。

var result = drTest.OrderByDescending(itemArray => itemArray [1]);

或者

var result = from row in drtest 
             orderby row[1] descending 
             select row;

有关更多信息,您可以通过LINQ-Ordering Operators了解更多信息。

于 2013-06-03T05:30:27.033 回答