どうも、ちょげ(@chogetarou)です。
リスト(List)から重複がある要素を抽出する方法を紹介します。
方法

リスト(List)から重複がある要素を抽出するには、System.Linqを使います。
まず、System.Linqを導入します。
using System.Linq;
次に、リスト(List)からGroupBy()を呼び出します。
GroupBy()の引数に、引数をそのまま返すラムダ式を指定します。
GroupBy()からWhere()を呼び出し、Where()のラムダ式で「引数.Count() > 1」を返します。
そして、Where()からSelect()を呼び出し、Select()のラムダ式で引数のKeyプロパティを返します。
Select()からToList()を呼び出します。
var result = list.GroupBy(x => x)
.Where(x => x.Count() > 1)
.Select(x => x.Key);
.ToList();
上記のToList()は、GroupBy()を呼び出したリスト(List)から重複する要素を抽出したリストを生成します。
使用例
using System;
using System.Linq;
public class Example
{
public static void Main()
{
int[] numbers = new int[] { 1, 2, 3, 1, 1, 4, 3, 5 };
var duplicates = numbers.GroupBy(x => x)
.Where(x => x.Count() > 1)
.Select(x => x.Key)
.ToList();
Console.WriteLine(String.Join(",", duplicates)); //1, 3
}
}
コメント