找出字符串列表项是否从另一个列表中的另一项开始

时间:2014-04-10 12:46:50

标签: c# list loops startswith

我想循环一个字符串列表,并查看此列表中的项目是否以另一个列表中的某个项目开头。

所以我有类似的东西:

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");

4 个答案:

答案 0 :(得分:4)

如果你只是想要一个列表而你不想使用查询表达式(我自己不喜欢它们;它们对我来说看起来不像真正的代码)

var matches = firstList.Where(fl => keyWords.Any(kw => fl.StartsWith(kw)));

答案 1 :(得分:3)

你可以使用一对简单的循环来做到这一点。

foreach (var t in firstList) {
    foreach (var u in keyWords) {
        if (t.StartsWith(u) {
            // Do something here.
        }
    }
}

答案 2 :(得分:3)

from item in firstList
from word in keyWords
where item.StartsWith(word)
select item

答案 3 :(得分:2)

试试这个它工作正常。

var result = firstList.Where(x => keyWords.Any(y => x.StartsWith(y)));