什么是最好的方法来做PROPNAME任何类型的属性T?用反射构建它,还是有一个很好的LINQ方法呢?
T[] vals = people.Select(x => x.PROPNAME).ToArray<T>();
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止最好的:
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>();
}
Run Code Online (Sandbox Code Playgroud)
返回时出错......但越来越近了.没关系,但比我希望的要小一些.
JCo*_*ine 24
使用非显式var类型,它将自动为您生成类型
var names = people.Select(x => x.PROPNAME).ToArray();
Run Code Online (Sandbox Code Playgroud)
小智 7
如果使用var关键字,将推断出类型:
var names = people.Select(x => x.PROPNAME).ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12304 次 |
| 最近记录: |