본문 바로가기

C# 문법

[C#] DataTable 중복 데이터 제거

경험

DataTable의 데이터를 DB에 넣거나, 혹은 DataTable의 값을 가지고 다양하게 변형을 시키는 경우가 있습니다. 이때 중복된 데이터가 있다면 오류를 발생하기 쉽습니다. 이때, 아주 간단한 방법으로 중복된 데이터를 제거 할 수 있습니다.


중복된 데이터 생성

    class Program
    {
        static void Main(string[] args)
        {
            CreateDataTable cDt = new CreateDataTable();
            DataTable dt = cDt.GetDataTable;
            foreach (DataRow dRow in dt.Rows)            
                Console.WriteLine($"{dRow[0]} : {dRow[1]}");

        }
    }
    public class CreateDataTable
    {
        private DataTable _dt = new DataTable();
        public CreateDataTable()
        {
            _dt = new DataTable();
            _dt.Columns.Add("Name", typeof(string));
            _dt.Columns.Add("age", typeof(int));
            _dt.Rows.Add("양뱅", 33);
            _dt.Rows.Add("양뱅", 33);
            _dt.Rows.Add("쏭", 31);
            _dt.Rows.Add("정태", 30);
            _dt.Rows.Add("쩌주", 29);
        }
        public DataTable GetDataTable => _dt;
    }

결과

양뱅 : 33
양뱅 : 33
쏭 : 31
정태 : 30
쩌주 : 29

중복 제거 방법

    class Program
    {
        static void Main(string[] args)
        {
            CreateDataTable cDt = new CreateDataTable();
            DataTable dt = cDt.GetDataTable;
            //이 부분이 중요!!!
            dt = dt.DefaultView.ToTable(true);

            foreach (DataRow dRow in dt.Rows)            
                Console.WriteLine($"{dRow[0]} : {dRow[1]}");            
        }
    }

결과

양뱅 : 33
쏭 : 31
정태 : 30
쩌주 : 29