Использование C#, как преобразовать словарь в таблицу данных?
Есть пример того, как преобразовать список в таблицу данных на Преобразовать generi c Список / Перечислимый в DataTable?
Я начал работать над этим с 2019-12-17 гг.
И я искал сайты Google, Stackoverflow и Microsoft.
public static DataTable DictionaryToDataTable<T>(this IDictionary<K, V> data)
{
PropertyDescriptorCollection propertiesK = TypeDescriptor.GetProperties(typeof(K));
PropertyDescriptorCollection propertiesV = TypeDescriptor.GetProperties(typeof(V));
DataTable table = new DataTable();
foreach (PropertyDescriptor prop in propertiesK)
table.Columns.Add(prop.Name,
Nullable.GetUnderlyingType(prop.PropertyType)
?? prop.PropertyType);
foreach (PropertyDescriptor prop in propertiesV)
table.Columns.Add
(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType)
?? prop.PropertyType);
foreach(KeyValuePair<K, V> item in data)
{
DataRow row = table.NewRow();
foreach (PropertyDescriptor prop in propertiesK)
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
foreach (PropertyDescriptor prop in propertiesV)
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
table.Rows.Add(row);
}
return table;
}
Type ex = typeof(InformationInTransit.ProcessLogic.DataTableHelper);
MethodInfo mi = ex.GetMethod("DictionaryToDataTable");
MethodInfo miConstructed =
mi.MakeGenericMethod
(
typeof
(
Dictionary
<
String,
InformationInTransit.ProcessLogic.Exact.Participation
>
)
);
object[] args = {result};
DataTable dataTable = (DataTable) miConstructed.Invoke
(
null,
args
);