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プロパティだけをとりだして
その後重複を無くとっています。