【发布时间】:2010-11-18 13:37:08
【问题描述】:
我有一个大约 50 个关键字和大约 50000 个字符串的列表。我检查每个字符串是否包含至少一个关键字。我对匹配的关键字或匹配关键字的数量不感兴趣。我只想尽快返回“真”或“假”。
所以,我敢打赌,目前有一种算法优于我当前的 LINQ 版本:
class MyEnumerableExtension
{
public static bool ContainsAny(this string searchString, IEnumerable<string> keywords)
{
return keywords.Any(keyword => searchString.Contains(keyword))
}
}
bool foundAny = "abcdef".ContainsAny(new string[] { "ac", "bd", "cd" } );
【问题讨论】: