Linq에서 Enumerabel.GroupBy()를 사용하여 중복 값 찾기
아래 데이터 목록 lst에서 .GroupBy(), .Where(), .Select() 기능을 사용하여 중복 값을 찾습니다.
중복 된 총 항목 수만 필요 하다면 .Distinct().Count() 기능을 사용하여 간단히 구할 수 있습니다.
코드 예제)
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<int> lst = new List<int>() { 1, 2, 3, 3, 4, 4, 5, 6 };
var dup = lst.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
foreach (var item in dup)
{
Console.WriteLine($"중복 된 값={item}");
}
int dup_cnt = lst.Distinct().Count();
Console.WriteLine($"중복 된 항목 수={dup_cnt}");
}
}
>> 실행 결과 <<
중복 된 값=3
중복 된 값=4
중복 된 항목 수=2
감사 합니다.