C# 配列・Listの重複を無くす Distinct

こんにちは。レモンティーです。

今回は、配列やListから要素を重複しないように取り出します。
”無くす”と言ってますが元の配列が書き換わるわけではないです

使うのはDistinctメソッドです。

こんな感じで使うと、重複を取り除いてくれます

var Party = new Human[]
{
    new Human{Name = "たかし",Job = "戦士"},
    new Human{Name = "あけみ",Job = "僧侶"},
    new Human{Name = "ひろき",Job = "僧侶"},
    new Human{Name = "ゆうや",Job = "魔法使い"},
    new Human{Name = "さとこ",Job = "パラディン"},
    new Human{Name = "としき",Job = "戦士"},
    new Human{Name = "けんた",Job = "魔法使い"},
};

var job = Party.Select(x => x.Job)
                .Distinct()
                .ToArray();

Console.WriteLine("職業は以下の{0}種類", job.Length);

foreach (var j in job)
    Console.WriteLine("{0}",j);

出力はこうなります

f:id:sawalemontea:20171112230028p:plain

SelectメソッドでJobプロパティだけをとりだして
その後重複を無くとっています。