[C# 문법] C# DataTable 필요한 컬럼 추출 및 중복 데이터 제거하기
- C#/C# 문법
- 2020. 7. 10. 00:00
안녕하세요.
오늘은 C# 문법에서 DataTable 다루는 방법에 대해서 알려드리려고 합니다.
그 중에서도, Linq를 이용해서 DataTable에서 필요한 컬럼들만 다시 추출하는 방법과 추출된 데이터에서 중복된 데이터를 제거하는 방법을 알려 드리려고 합니다.
바로 예제 코드를 통해서 알아 보도록 하겠습니다.
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace TestDataTable { class Program { static DataTable dt = null;
static void Main(string[] args) { CreateColumnData(); //컬럼추가 CreateAddRowData(); //Row 추가
//필요한 컬럼 추출하여 새롭게 DataTable 생성 DataTable nDt = dt.DefaultView.ToTable(false, new string[] { "Name", "Grade"});
//컬럼 추출한 DataTable 출력 Console.WriteLine("-----------추출한 컬럼들 DataTable 출력-----------");
foreach(DataRow dataRow in nDt.Rows) { foreach(var item in dataRow.ItemArray) { Console.WriteLine(item); } }
Console.WriteLine(); Console.WriteLine();
//컬럼 추출한 DataTable 출력 Console.WriteLine("-----------중복 제거한 DataTable 출력-----------");
//중복 데이터 제거 DataTable distinctTable = nDt.DefaultView.ToTable(true);
for(int row = 0; row < distinctTable.Rows.Count; row++) { Console.WriteLine("이름 : {0}, 학년 : {1}", distinctTable.Rows[row][0].ToString(), distinctTable.Rows[row][1].ToString()); } }
/// <summary> /// DataTable 컬럼 추가 /// </summary> public static void CreateColumnData() { //데이터테이블 객체 생성 dt = new DataTable();
dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Age", typeof(string)); dt.Columns.Add("Grade", typeof(string)); dt.Columns.Add("PhoneNumber", typeof(string)); }
/// <summary> /// DataTable Row 추가 /// </summary> public static void CreateAddRowData() { dt.Rows.Add("범범조조", "28", "3", "1111"); dt.Rows.Add("아이유", "28", "1", "2222"); dt.Rows.Add("범범조조", "25", "3", "3333"); dt.Rows.Add("쯔위", "24", "3", "4444"); dt.Rows.Add("나연", "23", "3", "5555"); dt.Rows.Add("범범조조", "28", "3", "6666"); dt.Rows.Add("태연", "18", "3", "7777"); } } }
|
실행 결과
위와 같이 Linq를 이용하여 필요한 컬럼들만 DataTable에서 추출해 보았고, 또 현재 “범범조조” 가 중복되어 DataTable에 저장되어 있는데 중복제거하여 출력하니까 “범범조조” 한명만 출력되는 것을 확인하실 수 있습니다.
감사합니다.^^
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] LINQ의 기본 : 2장 from, where, orderby, select 문 이용하여 LINQ 문 작성하기 (0) | 2020.07.20 |
---|---|
[C# 문법] LINQ의 기본 : 1장 from, where, orderby, select 문 이용하여 LINQ 문 작성하기 (0) | 2020.07.19 |
[C# 문법] C# Linq 내에서 변수 지정하기 (let 키워드) (0) | 2020.06.24 |
[C# 문법] DataTable 컬럼 이름 정보 얻어오기 (0) | 2020.06.23 |
[C# 문법] C# Func 대리자 사용방법 (0) | 2020.06.19 |
이 글을 공유하기