String.Contains 在 c# 中不需要参数吗?
Posted
技术标签:
【中文标题】String.Contains 在 c# 中不需要参数吗?【英文标题】:String.Contains doesn't require parameters in c#? 【发布时间】:2012-05-17 18:33:47 【问题描述】:我偶然发现了这段代码:
var knownSeparators = new[] "\\", "/", "|", "." ;
return knownSeparators.FirstOrDefault(path.Contains);
其中路径是一个字符串,返回值也应该是一个字符串。
尽管 path.Contains 的智能感知建议使用一个参数,但没有它也可以正常工作。
这究竟是如何工作的? 有没有办法在 vb.net 中复制这种行为?
【问题讨论】:
【参考方案1】:FirstOrDefault
接受一个委托(Func<T, bool>
),此调用正在从方法组创建一个委托。相当于:
Func<string, bool> predicate = path.Contains;
return knownSeparators.FirstOrDefault(predicate);
我怀疑在 VB.NET 中你可以这样做:
Return knownSeparators.FirstOrDefault(AddressOf path.Contains)
...但如果不尝试,我无法确定。
【讨论】:
可悲的是,它仍然给出同样的错误,说它需要一个参数(在添加 addressOf 之后) @djerry:我已经编辑删除括号 - 看看是否有帮助。以上是关于String.Contains 在 c# 中不需要参数吗?的主要内容,如果未能解决你的问题,请参考以下文章
C# (String.StartsWith && !String.EndsWith && !String.Contains) 使用列表
使用javascript实现C#的String.contains()
C#判断字符串中是否包含指定字符或字符串(Contains/IndexOf)
C#判断字符串中是否包含指定字符或字符串(Contains/IndexOf)