gpt4 book ai didi

c# - 获取 LINQ 的 Any() 方法的 MethodInfo?

转载 作者:太空狗 更新时间:2023-10-29 22:22:25 24 4
gpt4 key购买 nike

我正在尝试构建一个调用 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 中,一种接受一个I​​Enumerable 参数,另一种接受一个I​​Enumerable 和一个Func。我想要第二种,理论上,我需要做的就是传递一个包含两种类型的数组:

var bar = enumerableType.GetMethod("Any", new[] { typeof(IEnumerable<>), typeof(Func<,>) });

但这总是返回 null。

我做错了什么?

最佳答案

var foo = enumerableType.GetMethods(BindingFlags.Static | BindingFlags.Public)
.First(m => m.Name == "Any" && m.GetParameters().Count() == 2);

关于c# - 获取 LINQ 的 Any() 方法的 MethodInfo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25147231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com