我在 SO 上找到了这个代码示例(不记得从哪里 :/),它允许我在启动我的应用程序时检查行代码参数:
if (e.Args.Length == 0 || e.Args.Any("-show".Contains))
{
//show interface...
}
我似乎无法理解 "-show".Contains
是如何工作的。
如果与(经典)x => x.Contains('"-show")
有任何区别(明显的打字增益除外)。
很有魅力,但我想知道为什么,我觉得有大事要发生。
最佳答案
这个:
.Any("-show".Contains)
基本上是这个的简写:
.Any(s => "-show".Contains(s))
Any
方法将委托(delegate)作为参数,您可以通过多种方式创建该委托(delegate)。第一个片段使用方法组,而第二个片段使用 Lambda。
说第一个是第二个的简写并不准确,因为方法组早于 Lambdas,但是如果您在调用像 Any
这样的 LINQ 方法时从 Lambdas 的角度考虑,那么实际上就是这种情况.
关于c# - string.Contains 作为谓词而不是函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50151098/