お世話になります。vb.net2010で開発をしております。
System.Collections.Generic.ListにクラスをAddしたクラス変数をソートしたいと考えております。
コードを以下に記述します。
Dim list As New List(Of aaa)
Dim listWork As New aaa
' クラス変数に格納する
listWork.strA = "2015/02/01"
listWork.strB = "17:00"
listWork.strC = "タロウ"
' リストに追加する
list.Add(listWork)
' クラス変数に格納する
listWork.strA = "2015/02/02"
listWork.strB = "17:00"
listWork.strC = "ジロウ"
' リストに追加する
list.Add(listWork)
Public Class aaa
Public strA As String(日付型文字列)
Public strB As String(時刻文字列)
Public strC As String(任意の値)
End Class
このlistを日付型文字列でソートしたいのですが、いまいちうまくいきません。
sortメソッドはlistに実装されているようですが、使用方法が理解できていません。
実際にソートを行うことは可能なのでしょうか。
もし可能であれば、サンプルコードをご教示いただけますでしょうか。
恐れ入りますが、どなたかご教示いただければ幸いに存じます。
以上宜しくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
簡単な方法では,Comparisonを引数にとるSortメソッドを使います。
https://msdn.microsoft.com/ja-jp/library/w56d4y5 …
list.Sort(Function (x, y) String.Compare(x.strA, y.strA))
何箇所でも行うのであれば,IComaprer(Of aaa)を実装したクラスを用意して,そのインスタンスを渡すとよいでしょう。
ただし,元のプログラムでは,listに入っている要素が全て同じオブジェクトのインスタンスになっています。
Addする要素は,それぞれ別々にNewした要素にしないといけません。
現在のコードで,2回Addした直後にブレークポイントをおいて,listの各要素のフィールドの値を見てみるとよいでしょう。
ご回答ありがとうございました。実はそのHPも確認済みだったのですが、いまいちうまくいかず悩んでおりました。その後、DataSetでソートする方法に変更し、目的動作が実行されることを確認しました。また、ご指摘のコードについては、記述ミスです。サンプル書きをしたため、本来ループで毎回初期化している処理を2重に記述してしまいました。申し訳ございませんでした。ご教示ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
抽象クラスをJUNITでテストする...
-
「ラッパークラス」の存在意義...
-
JTextFieldの入力制限
-
(vba)他のアプリケーションの右...
-
interface,extend,implementの...
-
Javaで下線
-
スタックで成績表を作るプログ...
-
バックグラウンドでキー監視
-
サブクラス型オブジェクトをス...
-
C言語のプログラムをJavaに
-
VB初心者なのでわかりづらい説...
-
Javaでタスクシステムを作るの...
-
Javaの自作例外クラスについて
-
親クラスのメソッドを別のパッ...
-
XMLデータの受信
-
Javaでは多重継承ができない、...
-
Java難しすぎ
-
「インターフェイス」って何の...
-
vb.net 自作プロパティの削除に...
-
Class.forName("org.postgresql...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
(vba)他のアプリケーションの右...
-
抽象クラスをJUNITでテストする...
-
「ラッパークラス」の存在意義...
-
ASP.NETでの共通コードの書き方...
-
JTextFieldの入力制限
-
「継承されたメソッドの可視性...
-
VB DLLプロジェクトについて
-
C# 「データが失なわれる可能性...
-
c++でのヘッダーファイルの循環...
-
【C#】クラスのコンストラクタ...
-
「IOException は対応する try ...
-
メソッドの引数にクラス名を渡す
-
ファイルパスが取得出来ない(P...
-
ゲッターを使わないで変数にア...
-
Javaのインスタンス化の構文の...
-
オーバーライドとラッパーの違い
-
vb.net 自作プロパティの削除に...
-
なぜインタフェースを使うのか?
-
VBがオブジェクト指向言語でな...
おすすめ情報