Преобразование динамического списка в датированный - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть динамический список в указанном ниже формате, и я хочу преобразовать его в таблицу данных.

Причина динамического изменения заключается в том, что столбцы будут различаться в зависимости от этого ввода.

Входные данные:

{{
  "EMP_ID": "12345",
  "Client": "abcdef",
  "Business_Type": "Temping",
  "EMP NO": "098765",
  "Associate Id": "mki0987"
}}

Приведенный выше список составлен из строки json

{[  {    
 "EMP_ID": "12345",   
 "Client": "abcdef",   
 "Business_Type": "Temping",   
 "EMP NO": "098765",   
 "Associate Id": "mki0987"
 }]}

Ожидаемый результат:

EMP_ID  | Client  |  Business_Type  |  EMP NO  |  Associate ID

--------|---------|-----------------|----------|-------------------

12345   | abcdef  |   Temping       | 098765   |   mki0987

--------|---------|-----------------|----------|-------------------

Любые идеи для достижения этой цели.


Я пытался сделать это, используя отражение, как упомянуто ниже

public static DataTable ToDataTable<T>(List<T> items) {
    DataTable dataTable = new DataTable(typeof(T).Name);

    //Get all the properties
    PropertyInfo[] Props = typeof(T).GetProperties();
    foreach (PropertyInfo prop in Props) {
        //Defining type of data column gives proper data table
        //var type = (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>) ? Nullable.GetUnderlyingType(prop.PropertyType) : prop.PropertyType);
        //Setting column names as Property names
        dataTable.Columns.Add(prop.Name);
    }
    foreach (T item in items) {
        var values = new object[Props.Length];
        for (int i = 0; i < Props.Length; i++) {
            //inserting property values to datatable rows
            values[i] = Props[i].GetValue(item, null);
        }
        dataTable.Rows.Add(values);
    }
    //put a breakpoint here and check datatable
    return dataTable;
}

Но в этом конкретном коде Get properties ничего не возвращает мне как имена столбцов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...