「TIPS:自作クラスによる配列をソート(並べ替え)するには?」では、IComparableインターフェイス(System名前空間)を実装することにより、自作クラスの配列をソートする方法について解説したが、.NET Framework 3.5(Visual Studio 2008)以降では、LINQの機能を使って、もっと簡単に自作クラスの配列をソートできる。
public class Word {
public string data;
public Word(string s) { data = s; }
}
public class LinqSort1 {
static void Main() {
Word[] wordArray = {
new Word("むつき"),
new Word("きさらぎ"),
new Word("やよい"),
new Word("うづき"),
new Word("さつき"),
new Word("みなづき"),
new Word("ふみづき"),
new Word("はづき"),
new Word("ながつき"),
new Word("かんなづき"),
new Word("しもつき"),
new Word("しわす"),
};
Public Sub New(ByVal s As String)
data = s
End Sub
End Class
Public Class LinqSort1
Shared Sub Main()
Dim wordArray As Word() = { _
New Word("むつき"), _
New Word("きさらぎ"), _
New Word("やよい"), _
New Word("うづき"), _
New Word("さつき"), _
New Word("みなづき"), _
New Word("ふみづき"), _
New Word("はづき"), _
New Word("ながつき"), _
New Word("かんなづき"), _
New Word("しもつき"), _
New Word("しわす") _
}
For Each w As Word In wordArray
Console.WriteLine(w.data)
Next
' 出力:
' むつき
' やよい
' うづき
' さつき
' はづき
' しわす
' きさらぎ
' みなづき
' ふみづき
' ながつき
' しもつき
' かんなづき
End Sub
End Class
public class Word {
public string data;
public Word(string s) { data = s; }
}
public class LinqSort2 {
static void Main() {
Word[] wordArray = {
new Word("むつき"),
new Word("きさらぎ"),
new Word("やよい"),
new Word("うづき"),
new Word("さつき"),
new Word("みなづき"),
new Word("ふみづき"),
new Word("はづき"),
new Word("ながつき"),
new Word("かんなづき"),
new Word("しもつき"),
new Word("しわす"),
};
Public Sub New(ByVal s As String)
data = s
End Sub
End Class
Public Class LinqSort2
Shared Sub Main()
Dim wordArray As Word() = { _
New Word("むつき"), _
New Word("きさらぎ"), _
New Word("やよい"), _
New Word("うづき"), _
New Word("さつき"), _
New Word("みなづき"), _
New Word("ふみづき"), _
New Word("はづき"), _
New Word("ながつき"), _
New Word("かんなづき"), _
New Word("しもつき"), _
New Word("しわす") _
}
For Each w As Word In wordArray
Console.WriteLine(w.data)
Next
' 出力:
' うづき
' さつき
' しわす
' はづき
' むつき
' やよい
' きさらぎ
' しもつき
' ながつき
' ふみづき
' みなづき
' かんなづき
End Sub
End Class