こんにちは
あげぱんです。
2015年からVB.NETを本業でメインの言語として勉強していますが、
残念なことに調べてもすぐに忘れてしまうため、
備忘録として残していこうと思います。
目次
「Listの要素を並び替える方法」
例:
[人間クラス]
Public Class Human
Public Property Name As String = ""
Public Property Age As String = ""
Public Property Gender As String = ""
End Class
[ロマサガクラス]
Public Class Romasaga
Public Sub GameStart()
Dim human1 = New Human(“ユリアン・ノール”, 20, "男")
Dim human2 = New Human(“ハリード”, 33)
Dim human3 = New Human(“ミカエル・アウスバッハ・フォン・ロアーヌ”, 27, "男")
Dim human4 = New Human(“トーマス・ベント”, 22, "男")
‘キャラクター情報はWikipedia参照
Dim mainCharacter = New List(Of Human)
mainCharacter.Add(human1)
mainCharacter.Add(human2)
mainCharacter.Add(human3)
mainCharacter.Add(human4)
End Sub
End Class
このように、人間クラスで主人公たちを作成しておきます。
現在“mainCharacter”リストは
- ユリアン・ノール, 20 , 男
- ハリード, 33, 男
- ミカエル・アウスバッハ・ロアーヌ, 27, 男
- トーマス・ベント, 22, 男
当然ですが、リストにぶち込んだ順番通りになっています。
ここから主人公たちを「ピチピチ肌の順番(年齢順)に並べたいとき」
以下の1行を書き足してあげると良いです。
Public Class Romasaga
Public Sub GameStart()
'キャラクター情報はWikipediaを参照しました。
Dim human1 = New Human(“ユリアン・ノール”, 20, "男")
Dim human2 = New Human(“ハリード”, 33)
Dim human3 = New Human(“ミカエル・アウスバッハ・フォン・ロアーヌ”, 27, "男")
Dim human4 = New Human(“トーマス・ベント”, 22, "男")
Dim mainCharacter = New List(Of Human)
mainCharacter.Add(human1)
mainCharacter.Add(human2)
mainCharacter.Add(human3)
mainCharacter.Add(human4)
'この行を追加します。
mainCharacter.Sort(Function(a, b) a.Age - b.Age)
End Sub
End Class
上記のように1行書いてあげるだけで、
- ユリアン・ノール, 20 , 男
- トーマス・ベント, 22, 男
- ミカエル・アウスバッハ・ロアーヌ, 27, 男
- ハリード, 33, 男
このように、おじ様たちが後ろへと追いやられます。
正直並び変わる理屈はわかっていません。
ラムダ式は苦手なのです。
とりあえず、
今はこう書けば並び変わる。
そう覚えておこうと思います。
しっかり理解できたその時、追記していきます。