## C#에서 DataTable을 List<T> 형태로 변환하는 방법

 

C#에서 DataTable을 List<T> 형태로 변환하는 방법에는 여러 가지 방법이 있지만, 가장 간단한 방법 중 하나는 다음과 같습니다.

public static List<T> DataTableToList<T>(DataTable table) where T : new()
{
    List<T> list = new List<T>();

    foreach (DataRow row in table.Rows)
    {
        T obj = new T();

        foreach (DataColumn column in table.Columns)
        {
            PropertyInfo prop = obj.GetType().GetProperty(column.ColumnName);

            if (prop != null && row[column] != DBNull.Value)
            {
                prop.SetValue(obj, row[column], null);
            }
        }

        list.Add(obj);
    }

    return list;
}

위 코드는 제네릭 메소드로, DataTable을 List<T> 형태로 변환할 수 있습니다. T는 DataTable에서 반환될 개체 유형을 나타냅니다. 이 메소드는 DataTable의 각 행을 T 개체로 변환합니다. 이를 위해 T 개체에 대한 새 인스턴스를 만들고, 개체의 속성과 DataTable의 열 이름이 일치하는 경우에만 해당 속성에 값을 할당합니다. 예를 들어, T가 다음과 같은 클래스일 때:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

다음과 같은 코드를 사용하여 DataTable을 List<Person>으로 변환할 수 있습니다.

DataTable table = new DataTable();
// DataTable을 채우는 코드 ...

List<Person> people = DataTableToList<Person>(table);

끝.

 

Comments


Comments are closed