23

DataTable以下のようなものがあります。

|              ID                    | ItemIndex |   ItemValue
ce895bd9-9a92-44bd-8d79-986f991154a9     1            3
ae7d714e-a457-41a8-8bb4-b5a0471c3d2f     2            2
a774dff3-acc0-4f50-a211-a775e28dcae3     2            1
292bbd50-290b-4511-9e4e-2e74e3ebe273     3            2
ae7d714e-a457-41a8-8bb3-b5a0471c3d22     3            1

最初にこのテーブルを で並べItemIndex替え、次に並べ替えたテーブルを で並べ替えますItemValue

どうすればこれを達成できますか?

編集:並べ替え後、次のようなテーブルが必要です。

|              ID                    | ItemIndex |   ItemValue
ce895bd9-9a92-44bd-8d79-986f991154a9     1            3
a774dff3-acc0-4f50-a211-a775e28dcae3     2            1
ae7d714e-a457-41a8-8bb4-b5a0471c3d2f     2            2
ae7d714e-a457-41a8-8bb3-b5a0471c3d22     3            1
292bbd50-290b-4511-9e4e-2e74e3ebe273     3            2
4

7 に答える 7

40

LINQ to DataSet/DataTable を使用できます

var newDataTable = yourtable.AsEnumerable()
                   .OrderBy(r=> r.Field<int>("ItemIndex"))
                   .ThenBy(r=> r.Field<int>("ItemValue"))  
                   .CopyToDataTable();
于 2013-04-30T14:55:49.523 に答える
31

DataViewを作成し、Sort プロパティを使用します。

DataView dv = new DataView(dt);
dv.Sort = "ItemIndex, ItemValue";

例えば

foreach (DataRowView row in dv) {
   Console.WriteLine(" {0} \t {1}", row["ItemIndex"], row["ItemValue"]);
}

詳細については、MDSN でより完全な例を確認してください。

http://msdn.microsoft.com/en-us/library/system.data.dataview.sort.aspx

于 2013-04-30T14:56:08.643 に答える
11

データビューを作成することにより

var dataView = new DataView(dataTable);
dataView.Sort = "ItemIndex ASC, ItemValue ASC"

ここで dataTable は、並べ替えたいテーブルです

于 2013-04-30T14:58:44.823 に答える