所以我有一个简单的DataSet,其表BatchSummary
如下所示:
我想以非常具体的顺序对此表中的行进行排序。该表总是有5行,Description的值总是如下所示(例子):
我希望按照这个非常具体的顺序对DataSet进行排序:
我尝试使用我的DataTable的DefaultView属性这样做
dataSet.BatchSummary.DefaultView.Item(0).DataView.Sort = "Marco, Bill, David, Anna, Frank"
但我得到System.IndexOutOfRangeException
我该如何排序?
答案 0 :(得分:2)
DataView.Sort
不支持此功能,它需要一个列。
我会使用更强大的Linq-To-DataTable
:
var descriptionOrder = new List<string>{ "Marco", "Bill", "David", "Anna", "Frank" };
var orderedBatchSummary = dataSet.BatchSummary.AsEnumerable()
.OrderBy(batch => descriptionOrder.IndexOf(batch.Description))
.ToArray();