본문 바로가기

Development/c#

c# DataTable 의 특정 DATA Column을 LIST로 반환

반응형

제목을 한국말로 표현하려니까 어렵네 ㅡ.ㅡ

   

설명을 하자면 linq를 이용해서 DataTable에서 특정 (선택한) Column의 DATA 를 List<string> 으로 변환 한다는 얘기 이다.

   

구문은 간단하다.

   

위의 소스를 정리하면 dt의 DataTable에서 Column (ColumnName = 'col1') 인 DATA를 List<string> result로 반환 하는 내용이다 ㅎㅎ

   

알고 나믄 정말 간단한데..

아래는 Console Project의 테스트 스크립이다.

   

   

namespace DataTableToListByLinq
{
    class Program
    {
        static void Main(string[] args)
        {

            // 테스트 데이터 생성
            DataTable dt = new DataTable();

            for (int i = 0; i < 4; i++)
            {
                dt.Columns.Add("col" + i.ToString());
            }

            for (int j = 0; j < 10; j++)
	   {
  	        DataRow dr = dt.NewRow();
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    dr[i] = string.Format("data[{0}][{1}]", j.ToString(), i.ToString());
                }
                dt.Rows.Add(dr); 
	   }

            // col1의 Column 데이터를 result로 반환 한다.
            List result = (from r in dt.AsEnumerable()
                               select r.Field("col1")).ToList();
            
            for (int i = 0; i < result.Count(); i++)
	   {
                Console.WriteLine(result[i]);
	   }
            
        }
    }
}
반응형

'Development > c#' 카테고리의 다른 글

Clickonce Process 로 실행  (0) 2017.11.27
iBATIS.net Thread  (0) 2015.04.21
C# Obsolete Attribute (특성)  (0) 2015.01.09
[C#] 확장 메서드  (0) 2015.01.09
C# Entity를 Json string으로 변환  (0) 2014.12.19