什么是最好的方法来处理这个问题,其中
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>();
}
在返回值中出现错误...但已经接近成功了。虽然有点混乱,但还算可以接受。
people
对象的属性名称数组吗? - Russ Cam