【VB.NET】Listの要素を並び替える方法

こんにちは

あげぱんです。

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”リストは

  1. ユリアン・ノール, 20 , 男
  2. ハリード, 33, 男
  3. ミカエル・アウスバッハ・ロアーヌ, 27, 男
  4. トーマス・ベント, 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行書いてあげるだけで、

  1. ユリアン・ノール, 20 , 男
  2. トーマス・ベント, 22, 男
  3. ミカエル・アウスバッハ・ロアーヌ, 27, 男
  4. ハリード, 33, 男

このように、おじ様たちが後ろへと追いやられます。

正直並び変わる理屈はわかっていません。

ラムダ式は苦手なのです。

とりあえず、

今はこう書けば並び変わる。

そう覚えておこうと思います。

しっかり理解できたその時、追記していきます。

よかったらシェアしてね!

この記事を書いた人

はじめまして
あげぱんです

『人生なんとかなる』がモットーのサラリーマンエンジニアです


“幸せに楽しく生きたい”

30歳から全力で人生を謳歌するべく、
いろいろチャレンジしていきたいと思っています。

みなさまにも僕の幸せをお裾分けをしていきますので、
どうぞよろしくお願いいたします。

目次
閉じる