■ 객체 리스트를 데이터 테이블로 변환하기

----------------------------------------------------------------------------------------------------

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

 

#region 데이터 테이블 구하기 - GetDataTable<TSource>(sourceList)

 

/// <summary>

/// 데이터 테이블 구하기

/// </summary>

/// <typeparam name="TSource">소스 타입</typeparam>

/// <param name="sourceList">소스 리스트</param>

/// <returns>데이터 테이블</returns>

public DataTable GetDataTable<TSource>(IList<TSource> sourceList)

{

    DataTable targetTable = GetDataTable<TSource>(); // '객체 타입을 갖고 데이터 테이블 구하기' 참조

 

    Type sourceType = typeof(TSource);

 

    PropertyDescriptorCollection sourcePDC = TypeDescriptor.GetProperties(sourceType);

 

    foreach(TSource item in sourceList)

    {

        DataRow targetRow = targetTable.NewRow();

 

        foreach(PropertyDescriptor propertyDescriptor in sourcePDC)

        {

            targetRow[propertyDescriptor.Name] = propertyDescriptor.GetValue(item);

        }

 

        targetTable.Rows.Add(targetRow);

    }

 

    return targetTable;

}

 

#endregion

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요