Linq语句来选择包含所有字母的字符串

本文关键字:字符串 包含所 语句 选择 Linq | 更新日期: 2023-09-27 18:00:58

我有一个字符串列表,我想选择所有包含一些字母的字符串(任何位置的所有字母(我尝试了以下代码

selWords = wordlist.Where(x.IndexOfAny("aeo".ToCharArray()) != -1).ToList();

它给了我所有包含aeo字母的单词,但我需要那些包含所有这些字母的单词

Linq语句来选择包含所有字母的字符串

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

好吧,有很多解决方案,这里是我觉得最优雅的一个:

var matches = wordlist.Where(w => "aeo".All(l => w.Contains(l)));

我建议您对使用Linq

var result = from word in wordlist
where word .Contains("a") && word .Contains("e") && word .Contains("o")
select word;

您需要进行

selWords = wordlist.Where(x => x.IndexOfAny("a".ToCharArray()) != -1
                               &&
                               x.IndexOfAny("e".ToCharArray()) != -1
                               &&
                               x.IndexOfAny("o".ToCharArray()) != -1).ToList();

我试图做同样的事情,但数据源来自MySql数据库,这修复了

`var result= _context.dataSource.AsEnumerable().Where(w => searchLetters.Any(x => y.LastName.Contains(x)));`