// dtsort.cs using System; using System.Data; public class DataTableSort { static void ShowTable(DataTable dt) { Console.WriteLine("--------------------"); foreach (DataRow dr in dt.Rows) { string s1 = dr["date"].ToString().Substring(0, 10); string s2 = dr["title"].ToString(); Console.WriteLine("{0} {1}", s1, s2); } Console.WriteLine("--------------------\n"); } static void Main() { // @ITのRSS情報からデータテーブルを作成 DataSet ds = new DataSet(); ds.ReadXml("http://www.atmarkit.co.jp/rss/fdotnet/rss2dc.xml"); DataTable dt = ds.Tables["item"]; ShowTable(dt); // 出力例: // -------------------- // 2005-10-12 可変性を管理したモデル駆動型開発の例 // 2005-10-08 ASP.NETで実践するO/Rマッピング(iBATIS.NET編) // 2005-10-07 .NET TIPS - .NET開発のテクニックとヒント集 - // …… // 2005-09-14 複雑なオブジェクトでもすぐに中身が見えるデータヒント // 2005-09-10 新グリッド・コントロールの豊富な機能と高い表現力 // 2005-09-09 .NET TIPS - .NET開発のテクニックとヒント集 - // -------------------- // データテーブルのコピーを作成 DataTable dt2 = dt.Clone(); ShowTable(dt2); // 行がないことを確認 // 出力例: // -------------------- // -------------------- // ソートされたデータビューの作成 DataView dv = new DataView(dt); dv.Sort = "date"; // ソートされたレコードのコピー foreach (DataRowView drv in dv) { dt2.ImportRow(drv.Row); } ShowTable(dt2); // 出力例: // -------------------- // 2005-09-09 .NET TIPS - .NET開発のテクニックとヒント集 - // 2005-09-10 新グリッド・コントロールの豊富な機能と高い表現力 // 2005-09-14 複雑なオブジェクトでもすぐに中身が見えるデータヒント // …… // 2005-10-07 .NET TIPS - .NET開発のテクニックとヒント集 - // 2005-10-08 ASP.NETで実践するO/Rマッピング(iBATIS.NET編) // 2005-10-12 可変性を管理したモデル駆動型開発の例 // -------------------- } } // コンパイル方法:csc dtsort.cs