我有一个字符串列表:
var list = new List<string>();
list.Add("CAT");
list.Add("DOG");
var listofItems = new List<string>();
listofItems .Add("CATS ARE GOOD");
listofItems .Add("DOGS ARE NICE");
listofItems .Add("BIRD");
listofItems .Add("CATAPULT");
listofItems .Add("DOGGY");
现在我想要一个这样的函数:
listofItems.Where(r=> list.Contains(r));
但不是包含,我希望它从检查开始,这样 5 个项目中的 4 个将被返回(BIRD 不会)。
最快的方法是什么?
最佳答案
您可以使用 StartsWith Any 内部
listofItems.Where(item=>list.Any(startsWithWord=>item.StartsWith(startsWithWord)))
您可以将其可视化为双 for
循环,第二个 for
一碰到true
就爆发了案例
var filteredList = new List<String>();
foreach(var item in listOfItems)
{
foreach(var startsWithWord in list)
{
if(item.StartsWith(startsWithWord))
{
filteredList.Add(item)
break;
}
}
}
return filteredList;
关于c# - 在 C# 中,搜索列表中的元素但执行 "StartsWith()"搜索的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19849923/