VS2005(VB)の開発環境です。
以下の2次元配列があります。
Dim ForExample(,) As String = {{"1","1","平野"}, _
{"1","2","大石"}, _
{"2","1","小川"}, _
{"2","2","新井"}, _
{"2","3","水口"}, _
{"3","1","ブライアント"}, _
{"4","1","オグリビ"}, _
{"4","2","中村"}} _
その配列を0番目の要素では降順1番目の要素で昇順で
以下のように並び替えをしたいのです。
{"1","2","大石"}, _
{"1","1","平野"}, _
{"2","3","水口"}, _
{"2","2","新井"}, _
{"2","1","小川"}, _
{"3","1","ブライアント"}
{"4","2","中村"}} _
{"4","1","オグリビ"}, _
いろいろ検索してわかったことは
1:ジャグ配列を使用すれば2次元配列のsortは1項目では可能
です。
今回知りたいことは
1:2次元配列からジャグ配列への変換
2:2つの項目で並び替えで1つはSortもうひとつはReverce
のコード記述方法です。
どうかよろしくお願いします。
データを、DataTable で管理されては如何でしょうか?
これならば、DataView の Sort プロパティを用いることで、
容易に任意の並び順にすることができますし。
'列定義
Dim table As New DataTable()
table.Columns.Add("F1", GetType(Integer))
table.Columns.Add("F2", GetType(Integer))
table.Columns.Add("Name")
'変換
For x As Integer = 0 To UBound(ForExample, 1)
table.Rows.Add(ForExample(x, 0), ForExample(x, 1), ForExample(x, 2))
Next
'並び替え
table.DefaultView.Sort = "F1 DESC, F2 ASC"
'確認
Me.DataGridView1.DataSource = table.DefaultView
魔界の仮面弁士さんありがとうございました。
並べ替え表示はできました。
ありがとうございました。
すみませんがもうひとつ質問があります。
並び替えをした順に数字を追加でつけたいのです。
つまり順位をつけたいのですが方法はあるでしょうか
並べ替えのあと
For y As Integer = 0 To table.Rows.count - 1
table.Rows(y)(0) = y
Next
としたのですが
並び替え前の順位で数字がついてしまいます。
どうか教えて下さい。
http://www.atmarkit.co.jp/fdotnet/dotnettips/363dtsort/dtsort.html
参考にできました。
ありがとうございました。
ツイート | ![]() |