【发布时间】:2014-09-28 14:41:26
【问题描述】:
我正在尝试构建一个调用 LINQ 的 Any() 方法的表达式,但我似乎找不到传递给 Type.GetMethod() 的正确参数。
从文档看来,Any() 是作为 Enumerable 类的成员实现的,这似乎可行,因为这显示给名为“Any”的方法:
var enumerableType = typeof (Enumerable);
var foo = enumerableType.GetMethods().Where(m => m.Name == "Any").ToList();
当我使用名为“Any”的方法时,我得到了一个 AmbiguousMatchException。
有两种 Any() 方法,在 Enumerable 中,一个接受一个参数 IEnumerable,另一个接受一个 IEnumerable 和一个 Func。我想要第二个,理论上,我需要做的就是传递一个包含两种类型的数组:
var bar = enumerableType.GetMethod("Any", new[] { typeof(IEnumerable<>), typeof(Func<,>) });
但这总是返回 null。
我做错了什么?
【问题讨论】:
-
看this
标签: c# linq reflection