我有集合ICollection<T>
,我需要找到方法“Where”。我怎么能这样做?
我试过这样的事情:
System.Type type = typeof(ICollection<T>);
MethodInfo info = type.GetGenericTypeDefinition().GetMethod("Where");
但它不起作用。我需要它来创建动态表达式
答案 0 :(得分:3)
它是一种扩展方法,因此它不在接口本身上,而是在Enumerable
类上:
typeof(Enumerable).GetMethods("Where", BindingFlags.Static | BindingFlags.Public)
然后选择您需要的过载。
答案 1 :(得分:0)
你需要
typeof(ICollection<>);
获取ICollection<T>
的类型。但Where
方法未在ICollection<T>
中定义。您应该从静态Enumerable
类获取方法。