LINQラムダ式で重複データを取り除くには .Distinct()を使用します。
サンプル
例1)List<int>から重複要素を取り除く
using System.Collections.Generic;
using System.Linq;
//intのListを生成
List<int> list = new List<int>(){7, 3, 9, 3, 5, 3};
//重複要素を取り除く
var a = list.Distinct().ToArray();
結果
7, 3, 9, 5
例2)List<string>から重複要素を取り除く
using System.Collections.Generic;
using System.Linq;
//stringのListを生成
List<string> list
= new List<string>(){"鈴木", "田中", "木村", "山田", "大木", "鈴木"};
//「木」が含まれている要素を抽出し、重複を取り除く
var a = list.Where(x => x.Contains("木")).Distinct().ToArray();
結果
鈴木、木村、大木
例3)データクラスの重複を取り除く
using System.Collections.Generic;
using System.Linq;
//データクラス(Prefクラス)
class Pref{
public int No {get; set;}
public string Name {get; set;}
public int Population {get; set;}
}
var list = new List<Pref>();
list.Add(new Pref{No=1, Name="北海道", Population=5381733});
list.Add(new Pref{No=2, Name="青森県", Population=1308265});
list.Add(new Pref{No=3, Name="岩手県", Population=1279594});
list.Add(new Pref{No=2, Name="青森県", Population=1308265});
list.Add(new Pref{No=3, Name="岩手県", Population=1279594});
//Pref.Nameが重複している要素を取り除く
var a = list.Select(x => x.Name).Distinct().ToArray();
結果
北海道、青森、岩手
備考
- LINQを使用するには、「using System.Linq;」の宣言が必要です。