C#에서 DataTable을 List<T> 형태로 변환하는 방법
## 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