
お世話になります。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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(vba)他のアプリケーションの右...
-
c++でのヘッダーファイルの循環...
-
JTextFieldの入力制限
-
抽象クラスをJUNITでテストする...
-
Javaのインスタンス化の構文の...
-
System.Collections.Generic.Li...
-
JAVAにFTP転送をサポートし...
-
「IOException は対応する try ...
-
肥大化した実装クラスを分割す...
-
【C#】クラスのコンストラクタ...
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
配列のメソッド
-
private static という変数の修飾
-
クラス間でのデータ参照
-
レコード件数の表示
-
getParameter()について
-
C# インスタンスの破棄
-
Excel VBA 定数にオブジェクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(vba)他のアプリケーションの右...
-
interface,extend,implementの...
-
VB DLLプロジェクトについて
-
「継承されたメソッドの可視性...
-
C# 「データが失なわれる可能性...
-
【C#】クラスのコンストラクタ...
-
C#でインターフェースのプロパ...
-
「ラッパークラス」の存在意義...
-
メソッドの引数にクラス名を渡す
-
VBがオブジェクト指向言語でな...
-
オーバーライドとラッパーの違い
-
デバッグ時に「Source not found」
-
スクロールバーについて
-
ファイルパスが取得出来ない(P...
-
c# この高速化の方法あり? 2
-
EventListenerの実装について
-
携帯IApplicationのsuper
-
抽象クラスが継承されているか...
-
ASP.NETでの共通コードの書き方...
-
抽象クラスをJUNITでテストする...
おすすめ情報