C#

c# 배열, List에서 중복 데이터 찾는 방법

100ksoft 2023. 12. 17. 22:47

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

감사 합니다.