C#에서 IEnumerable을 DataTable로 효율적으로 변환
IEnumerable을 DataTable로 변환하면 개발자가 구조화된 표 형식으로 데이터를 처리할 수 있습니다. 그러나 기존 솔루션은 비효율적인 반사 기반 접근 방식에 의존하는 경우가 많습니다. 이 질문은 보다 효율적인 대안을 찾으려는 것입니다.
먼저 제공된 답변의 코드 조각은 유용한 확장 방법을 제공합니다.
<code class="language-csharp">public static DataTable ToDataTable<T>(this IEnumerable<T> items) { // 使用类型名称初始化DataTable var table = new DataTable(typeof(T).Name); // 获取类型的公共属性 PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); // 将属性作为列添加到DataTable foreach (var property in properties) { var propertyType = property.PropertyType; // 处理可空类型 if (propertyType.IsGenericType && propertyType.GetGenericTypeDefinition().Equals(typeof(Nullable<>))) { propertyType = Nullable.GetUnderlyingType(propertyType); } table.Columns.Add(property.Name, propertyType); } // 将每个T的属性值作为行添加到DataTable foreach (var item in items) { var values = new object[properties.Length]; for (int i = 0; i < properties.Length; i++) { values[i] = properties[i].GetValue(item); } table.Rows.Add(values); } return table; }</code>
이 확장 방법은 IEnumerable
위 내용은 C#에서 IEnumerable을 DataTable로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!