Какой лучший способ сделать это, когда PROPNAME
может быть любым свойством типа T
? Создайте его с отражением, или есть хороший способ LINQ сделать это?
T[] vals = people.Select(x => x.PROPNAME).ToArray<T>();
это лучшее, что у меня есть до сих пор:
public T[] ConvertListCol<TFrom,T>(IEnumerable<TFrom> list, string col)
{
var typ = typeof (TFrom);
var props = typ.GetProperties();
var prop = (from p in props where p.Name == col select p).FirstOrDefault();
var ret = from o in list select prop.GetValue(o, null);
return ret.ToArray<T>();
}
Получил ошибку в возвращении... но приблизился. Все в порядке, но немного грязнее, чем я надеялся.