C#에서 IEnumerable을 DataTable로 효율적으로 변환
이 문서에서는 IEnumerable 컬렉션을 DataTable로 효율적으로 변환하는 방법을 살펴봅니다. Reflection은 방법을 제공하지만 비효율적입니다.
다음 코드는 더욱 최적화된 솔루션을 제공합니다.
<code class="language-csharp">public static DataTable ToDataTable<T>(this IEnumerable<T> items) { // 创建DataTable并收集属性 DataTable table = new DataTable(typeof(T).Name); PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); // 从属性添加列 foreach (var prop in props) { Type propType = prop.PropertyType; // 处理可空类型 if (propType.IsGenericType && propType.GetGenericTypeDefinition().Equals(typeof(Nullable<>))) propType = new NullableConverter(propType).UnderlyingType; table.Columns.Add(prop.Name, propType); } // 从属性值添加数据行 foreach (var item in items) { object[] values = new object[props.Length]; for (int i = 0; i < props.Length; i++) { values[i] = props[i].GetValue(item, null); } table.Rows.Add(values); } return table; }</code>
이 확장 메서드는 null 허용 값 처리를 포함하여 변환을 효율적으로 처리합니다. Null 허용 유형을 고려하면 데이터 무결성과 신뢰할 수 있는 결과가 보장됩니다.
위 내용은 C#에서 IEnumerable을 DataTable로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!