我有一個字符串列表的字符串,我想選擇所有那些包含(在任何位置的所有字母的)一些字母 我試過下面的代碼Linq的語句來選擇包含所有字母
selWords = wordlist.Where(x.IndexOfAny("aeo".ToCharArray()) != -1).ToList();
它給了我所有包含任何的a
,e
,o
字母的話,但我需要那些包含了所有這些信件的
我有一個字符串列表的字符串,我想選擇所有那些包含(在任何位置的所有字母的)一些字母 我試過下面的代碼Linq的語句來選擇包含所有字母
selWords = wordlist.Where(x.IndexOfAny("aeo".ToCharArray()) != -1).ToList();
它給了我所有包含任何的a
,e
,o
字母的話,但我需要那些包含了所有這些信件的
string test1 = "sdfasdosdfe";
string test2 = "sdfasdasodfeasdfasd";
string test3 = "sdfsdfsdfsdfds";
string searchString = "aeo";
List<string> wordList = new List<string>() { test1, test2, test3 };
IEnumerable<string> resultList =
wordList.Where(q => searchString.ToCharArray().All(p => q.Contains(p)));
你需要做的
selWords = wordlist.Where(x => x.IndexOfAny("a".ToCharArray()) != -1
&&
x.IndexOfAny("e".ToCharArray()) != -1
&&
x.IndexOfAny("o".ToCharArray()) != -1).ToList();
我建議你使用Linq爲
var result = from word in wordlist
where word .Contains("a") && word .Contains("e") && word .Contains("o")
select word;
好了,解決方法有很多,下面是我覺得最優雅的一個:
var matches = wordlist.Where(w => "aeo".All(l => w.Contains(l)));
字符串實現'IEnumerable的'所以我們不需要明確地轉換爲'char []'。 –
Alexey