Yushox
Yushox

Reputation: 172

Find out if string list items startswith another item from another list

I'd like to loop over a string list, and find out if the items from this list start with one of the item from another list.

So I have something like:

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

Upvotes: 2

Views: 2706

Answers (4)

Govinda Rajbhar
Govinda Rajbhar

Reputation: 3034

Try this one it is working fine.

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

Upvotes: 2

Dave
Dave

Reputation: 4412

If you just want a list and you'd rather not use query expressions (I don't like them myself; they just don't look like real code to me)

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

Upvotes: 4

zimdanen
zimdanen

Reputation: 5626

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

Upvotes: 3

FreeAsInBeer
FreeAsInBeer

Reputation: 12979

You can do that using a couple simple for each loops.

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

Upvotes: 4

Related Questions