C# List를 DataTable로 변환

제네릭 타입의 List를 DataTable로 변환하는 메서드

public static DataTable ToDataTable(this List items)
{
    var tb = new DataTable(typeof(T).Name);
     
    PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);

    foreach (var prop in props)
    {
        tb.Columns.Add(prop.Name, prop.PropertyType);
    }

    foreach (var item in items)
    {
        var values = new object[props.Length];
        for (var i = 0; i < props.Length; i++)
        {
            values[i] = props[i].GetValue(item, null);
        }

        tb.Rows.Add(values);
    }

    return tb;
}
  • 2020년 9월 28일