通过反射使用First()和泛型集合

时间:2009-06-15 00:26:30

标签: c# generics

假设声明如下的方法:

public static string GetString<T>(IEnumerable<T> collection, string theProperty)

我如何使用反射返回泛型集合中第一个元素的属性theProperty的值? (使用Linq的First()方法)。

由于

2 个答案:

答案 0 :(得分:4)

public static string GetString<T>(IEnumerable<T> collection, string theProperty)
{
  return (string)(typeof(T)).GetProperty(theProperty).GetValue(collection.First(), null));
}

答案 1 :(得分:3)

为简洁起见,省略了错误检查:

return (string) typeof(T).GetProperty(theProperty).GetValue(collection.First(), null);