我有一个字符串列表,我想选择包含一些字母的所有字符(任何位置的所有字母) 我尝试了以下代码
selWords = wordlist.Where(x.IndexOfAny("aeo".ToCharArray()) != -1).ToList();
它为我提供了包含a
,e
,o
字母的所有字词,但我需要包含所有这些字母的字词
答案 0 :(得分:3)
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)));
答案 1 :(得分:1)
我建议您使用Linq
var result = from word in wordlist
where word .Contains("a") && word .Contains("e") && word .Contains("o")
select word;
答案 2 :(得分:1)
嗯,有很多解决方案,这是我觉得最优雅的解决方案:
var matches = wordlist.Where(w => "aeo".All(l => w.Contains(l)));
答案 3 :(得分:0)
你需要做
selWords = wordlist.Where(x => x.IndexOfAny("a".ToCharArray()) != -1
&&
x.IndexOfAny("e".ToCharArray()) != -1
&&
x.IndexOfAny("o".ToCharArray()) != -1).ToList();