Получить обобщенный список c от объекта (через отражение) - PullRequest
0 голосов
/ 07 января 2020

Я запрашиваю некоторые данные через отражение. Возвращаемый тип данных - System.data.datacolumn [] (переменная «test»). Я хотел бы преобразовать его в общий c список (например, список строк). Это возможно?

public IEnumerable<string> GetStringList(string property)
{
   var test =  GetPropertyValue(SomeObject, property);

    // MAGIC //

   return test;
}


public object GetPropertyValue(object obj, string propertyName)
{
    var propertyNames = propertyName.Split('.');

    foreach (var t in propertyNames)
    {
        if (obj != null)
        {
            var propertyInfo = obj.GetType().GetProperty(t);
            obj = propertyInfo != null ? propertyInfo.GetValue(obj) : null;
        }
    }

    return obj;
}

1 Ответ

0 голосов
/ 07 января 2020

Вы можете попробовать это

if (test is IEnumerable) {
    var values = test as IEnumerable;

    //Method 1: convert to list
    var asList = values.Cast<object>().ToList();

    //Method 2: iterate to IEnumerable and add to List
    var asList = new List<object>();
    foreach (var value in values)
    {
        asList.Add(value);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...