如何将 Func转换为 到谓词?
是的,我见过这个,但我找不到答案针对我的具体问题。
给定一个接受 T 并返回布尔值的 lambda testLambda (我可以将其设为 Predicate 或 Func,这取决于我),
我需要能够使用 List.FindIndex(testLambda) (接受 Predicate ) 和 List.Where(testLambda) (采用 Func)。
有什么想法如何做到这两点吗?
Yes I've seen this but I couldn't find the answer to my specific question.
Given a lambda testLambda that takes T and returns a boolean (I can make it either Predicate or Func that's up to me)
I need to be able to use both List.FindIndex(testLambda) (takes a Predicate) and List.Where(testLambda) (takes a Func).
Any ideas how to do both?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
简单:
基本上,您可以创建与任何兼容现有实例的新委托实例。 这也支持方差(co-和contra-):
如果你想使其通用:
Easy:
Basically you can create a new delegate instance with any compatible existing instance. This also supports variance (co- and contra-):
If you want to make it generic:
我得到了这个:
有效,但是很糟糕。
I got this:
Works, but ick.
我有点晚了,但我喜欢扩展方法:
然后你可以像这样使用它:
嗯,我现在看到了 FindIndex 扩展方法。 我想这是一个更笼统的答案。 与 ConvertToPredicate 也没有太大区别。
I'm a little late to the game, but I like extension methods:
Then you can use it like:
Hmm, I now see the FindIndex extension method. This is a little more general answer I guess. Not really much different from the ConvertToPredicate either.
听起来像是
我喜欢 C#3 的一个例子......
Sound like a case for
I love C#3 ...