【发布时间】:2016-06-25 02:43:08
【问题描述】:
以下是两个扩展方法。
ContainsAny() 将检查 IEnumerable 中的任何字符串元素是否包含调用该方法的字符串。好的,没问题
_ContainsAny() 使用链式 Linq 表达式来检查 IEnumerable 中的任何字符串元素是否包含在字符串中。
1) 第一个问题是,按照这两种不同类型的逻辑,它可以产生的结果是否完全不同。我得到了相同的结果。
2) 第二个问题是,Chain Linq 表达式如何在这里工作?
return stringsToMatch.Any(item => source.Contains(item));
Contains() 向 Any() 方法返回一个布尔值?
Any() 和 Contains() 方法在这个链式表达式中究竟是如何协同工作的?
public static class ContainsAnyExtension
{
public static bool ContainsAny(this string source, IEnumerable<string> stringsToMatch)
{
return stringsToMatch.Contains(source);
}
public static bool _ContainsAny(this string source, IEnumerable<string> stringsToMatch)
{
return stringsToMatch.Any(item => source.Contains(item));
}
}
【问题讨论】: