VisualStudio2013でC#を使って開発をしています.
型指定をしていないデータテーブルでのソートを行いたいのですが、
数値の入った列が文字列で並び替えられてしまうため思ったような並び順になりません。
そこで、色々調べたところ以下のような2つの方法でソートを行う方法があるとわかったのですが、
もっとシンプルな方法はありますでしょうか?
(C列に数値が入っていて、変数sortKeyにはDBから取得したソート順が入っています)
//方法1 sortKey="A,B,C" DataTable dt2 = dt.Clone(); dt2.Columns["C"].DataType = Type.GetType("System.Int32"); foreach (DataRow dr in dt.Rows) { dt2.ImportRow(dr); } dt2.AcceptChanges(); DataView dv = dt2.DefaultView; dv.Sort = sortKey; dt=dv.ToTable(); return dt;
//方法2 sortKey="A,B,C" dt.Columns.Add("C2 typeof(int), "Convert(C, 'System.Int32')"); sortKey=sortKey.Replace("C","C2"); dt.DefaultView.Sort = sortKey; dt=dt.DefaultView.ToTable(); return dt;
> 型指定をしていないデータテーブルでのソートを行いたいのですが、
> 数値の入った列が文字列で並び替えられてしまうため思ったような並び順になりません。
どういう入力データに対して、どういう出力結果にしたいかくらいは書きましょう。
回答1件
あなたの回答
tips
プレビュー