VB 2008でList(Of T)を使ってデータ処理を行おうと思っていますが、Listで扱うものを構造体やクラスにした場合、
ソートはどのように行えばよいでしょうか?
例えば、構造体Stru1があるとします。Stru1のメンバにはValue1とValue2(いずれもStringとする)があるとします。
そして、List(Of Stru1)というリストを作成しましたとします。このListをStru1.Value2(String)でソートしたい場合、
どのようにしたらよいか、ご回答のほどよろしくお願いします。
Sort メソッドには,比較用のオブジェクトやデリゲートを受け取るものがあります。
MSDN: List(T).Sort メソッド (IComparer(T)) (System.Collections.Generic)
http://msdn.microsoft.com/ja-jp/library/234b841s.aspx
MSDN: List(T).Sort メソッド (Comparison(T)) (System.Collections.Generic)
http://msdn.microsoft.com/ja-jp/library/w56d4y5z.aspx
前者が比較用のオブジェクトを受け取る Sort メソッドで,
後者が比較用のデリゲートを受け取る Sort メソッドです。
MSDN には,String を長さで比較するための例が載っていますので,参考になると思います。
Sort メソッドについては既に触れられているので、それ以外の方法を。
'Dim srcList As New List(Of Stru1)()
'【案1】
Dim dstList1 = (From s In srcList Order By s.Value2).ToList()
'【案2】
Dim dstList2 = srcList.OrderBy(Function(s) s.Value2).ToList()
YuOさま、魔界の仮面弁士さま、ご回答ありがとうございました。
色々な方法があるのですね。
これらを参考にトライしてみます。
ありがとうございました。
ツイート | ![]() |