DataRow配列をソートする方法。

年に1本はプログラムっぽいことを書かないと。
あっ、去年書いてなくね?


まぁいいや。



タイトルの通り、DataRow配列をソートする方法について。


DaraRow配列を使うときって、DataTableから結果をSelectした時くらいなんだけど、キーを変えて再ソートしたい時があったので、こんな方法を考えてみた。

Private Function SortDataRow(ByVal drOriginal as DataRow(),
                       _ByVal strSortKey as String) As DataRow()

      Dim drSort() As DataRow = Nothing
        Dim dtSortTemp As DataTable = Nothing
       

         '元のDataRow配列の親DataTableと同じ構造のDataTableを作る
         dtSortTemp = drOriginal(0).Table.Clone

         'クローンに元のDataRow配列をImportする
         For Each drImport As DataRow In drOriginal 
             dtSortTemp.ImportRow(drImport)
         Next

         'DataTable.Selectメソッドを使って、フィルターなしでソートをする
         drSort = dtSortTemp.Select("", strSortKey)

    Return drSort

End Function

.Net Frameworks1.1で確認。古くてすいませんw


ソートしたいDataRow配列とソートキーを渡してやるだけでソートされます。エラー処理とかは好きに入れましょう。


DaraRow内のItemを使って配列のソートメソッドって使えるんですかね?



あぁ、それとDBからデータを持ってくる時は、当然ソートしてから持ってきましょうね。
DBでできることはDBにやらせるのが一番ですから。