データテーブルの行をソートする方法に「Select」メソッドがあります。
サンプルコードを交えて解説したいと思います。
説明
データテーブルの行をコピーする。
ポイント
・第1引数はフィルターの文字列
・第2引数は列とソートの方向の文字列
例
コード
using System; using System.Data; namespace Sample { /// <summary> /// メインプログラム /// </summary> public class Program { /// <summary> /// テーブルの行のソート /// </summary> static void Main() { // テーブルの生成 var table = new DataTable(); // テーブルに列を追加 table.Columns.Add("名前", typeof(string)); table.Columns.Add("年齢", typeof(int)); // テーブルに行を追加 table.Rows.Add("五郎", 50); table.Rows.Add("一郎", 10); table.Rows.Add("四郎", 40); table.Rows.Add("二郎", 20); table.Rows.Add("三郎", 30); // 昇順にソート DataRow[] asc = table.Select("", "年齢 ASC"); // ソートした行を出力 Console.WriteLine("昇順"); foreach(DataRow dataRow in asc) { Console.WriteLine("名前 : " + dataRow[0] + " 年齢 : " + dataRow[1]); } Console.WriteLine(); // 降順にソート DataRow[] desc = table.Select("", "年齢 DESC"); // ソートした行を出力 Console.WriteLine("降順"); foreach(DataRow dataRow in desc) { Console.WriteLine("名前 : " + dataRow[0] + "、 年齢 : " + dataRow[1]); } Console.WriteLine(); } } }
出力
昇順 名前 : 一郎、 年齢 : 10 名前 : 二郎、 年齢 : 20 名前 : 三郎、 年齢 : 30 名前 : 四郎、 年齢 : 40 名前 : 五郎、 年齢 : 50 降順 名前 : 五郎、 年齢 : 50 名前 : 四郎、 年齢 : 40 名前 : 三郎、 年齢 : 30 名前 : 二郎、 年齢 : 20 名前 : 一郎、 年齢 : 10