我想遍历一个字符串列表,并找出该列表中的项目是否以另一个列表中的一个项目开头。
所以我有类似的东西:
List<string> firstList = new List<string>();
firstList.Add("txt random");
firstList.Add("text ok");
List<string> keyWords = new List<string>();
keyWords.Add("txt");
keyWords.Add("Text");
我想遍历一个字符串列表,并找出该列表中的项目是否以另一个列表中的一个项目开头。
所以我有类似的东西:
List<string> firstList = new List<string>();
firstList.Add("txt random");
firstList.Add("text ok");
List<string> keyWords = new List<string>();
keyWords.Add("txt");
keyWords.Add("Text");
您可以对每个循环使用几个简单的方法来做到这一点。
foreach (var t in firstList) {
foreach (var u in keyWords) {
if (t.StartsWith(u) {
// Do something here.
}
}
}
如果您只想要一个列表并且不想使用查询表达式(我自己不喜欢它们;它们对我来说看起来不像真正的代码)
var matches = firstList.Where(fl => keyWords.Any(kw => fl.StartsWith(kw)));
from item in firstList
from word in keyWords
where item.StartsWith(word)
select item
试试这个,它工作正常。
var result = firstList.Where(x => keyWords.Any(y => x.StartsWith(y)));