VB.NET 2次元配列をソートしたい
投稿者 KOZ  (社会人)
投稿日時
2024/11/11 16:55:12
ジャグ配列なら簡単なんですけどね。
2次元配列は面倒くさいので書きたくないです。
Dim jaggedArray As String()() = {
New String() {"A1", "B1", "C1", "D1"},
New String() {"A2", "B2", "C2", "D2"},
New String() {"A3", "B3", "C1", "D3"},
New String() {"A4", "B4", "C1", "D4"},
New String() {"A5", "B5", "C5", "D5"},
New String() {"A6", "B6", "C2", "D6"}
}
Array.Sort(jaggedArray, Function(x, y) String.Compare(x(2), y(2)))
For Each items In jaggedArray
Console.WriteLine(String.Join(",", items))
Next
2次元配列は面倒くさいので書きたくないです。
投稿者 san  (社会人)
投稿日時
2024/11/12 08:11:11
KOZ様
返答ありがとうございます。2次元配列のコードも是非宜しくお願いします。。
投稿者 とくま  (社会人)
投稿日時
2024/11/12 08:23:42
KOZ さんの回答を借りて、一度ジャグ配列に入れなおして、並び替えたあと
2次元配列に入れなおせば良いだけかと。
2次元配列のままどうにかしたいなら、Compareしたときに同一行のデータも
同じように入れ替えるコードを自作する必要があります。
並べ替えのコード自体は、プログラム初級者がやる演習として色々なサイトで
紹介されているので参考にしてみてください。
2次元配列に入れなおせば良いだけかと。
2次元配列のままどうにかしたいなら、Compareしたときに同一行のデータも
同じように入れ替えるコードを自作する必要があります。
並べ替えのコード自体は、プログラム初級者がやる演習として色々なサイトで
紹介されているので参考にしてみてください。
投稿者 とくま  (社会人)
投稿日時
2024/11/12 17:21:06
「VB 配列 ソート」のキーワードだけで調べると、既存のSortやCompare系のメソッド等しか引っ掛からないので、
「VB 配列 ソート アルゴリズム」のキーワードで調べると、自前のコードで並び替えるような
サンプルコードに辿り着きます。
時間は掛かるが、初心者でも理解しやすいのが、バブルソート
一般的には、クイックソートが良く採用されています。
「VB 配列 ソート アルゴリズム」のキーワードで調べると、自前のコードで並び替えるような
サンプルコードに辿り着きます。
時間は掛かるが、初心者でも理解しやすいのが、バブルソート
一般的には、クイックソートが良く採用されています。
投稿者 KOZ  (社会人)
投稿日時
2024/11/15 03:04:15
検索するより AI を使ったほうが早いです。
もっとも、目的のものを引き出すには何度か会話する必要がありますけどね。
Copilot で聞いてみました。
Q:VB.NET string の2次元配列を列の3番目の要素でソートするサンプルをください
A:ジャグ配列を使った方法が紹介される
Q:ジャグ配列を使いたくありません
A:リストを使った方法が紹介される
Q:リストも使いたくありません
A:目的のコードが紹介される
Q:ありがとう!
A:どういたしまして
もっとも、目的のものを引き出すには何度か会話する必要がありますけどね。
Copilot で聞いてみました。
Q:VB.NET string の2次元配列を列の3番目の要素でソートするサンプルをください
A:ジャグ配列を使った方法が紹介される
Q:ジャグ配列を使いたくありません
A:リストを使った方法が紹介される
Q:リストも使いたくありません
A:目的のコードが紹介される
Q:ありがとう!
A:どういたしまして
投稿者 とくま  (社会人)
投稿日時
2024/11/15 08:27:21
こちらでも Copilot で聞いてみました。リスト→インデックス→バブルソートでした。
リストでソートも、ちゃんと配列から入れなおして戻すコードまで書いてくれるんですね。
Q.リストを使用する方が良い理由を教えてください
A.ずらずらーっと
AIって勉強になるなぁ。
リストでソートも、ちゃんと配列から入れなおして戻すコードまで書いてくれるんですね。
Q.リストを使用する方が良い理由を教えてください
A.ずらずらーっと
AIって勉強になるなぁ。
以下のような二次元配列があります。3列目のC1が同じ行をソートしたいと考えています。どうすればよいでしょうか。
A1,B1,C1,D1
A2,B2,C2,D2
A3,B3,C1,D3
A4,B4,C1,D4
A5,B5,C5,D5
A6,B6,C2,D6
↓
A1,B1,C1,D1
A3,B3,C1,D3
A4,B4,C1,D4
A2,B2,C2,D2
A6,B6,C2,D6
A5,B5,C5,D5