类似SQL的LIST搜索和c#中的LINQ
本文关键字:中的 LINQ 搜索 SQL LIST 类似 | 更新日期: 2023-09-27 18:01:53
我有一个列表,其中包含需要排除的单词列表。
我的方法是有一个列表,其中包含这些词,并使用Linq搜索。
List<string> lstExcludeLibs = new List<string>() { "CONFIG", "BOARDSUPPORTPACKAGE", "COMMONINTERFACE", ".H", };
string strSearch = "BoardSupportPackageSamsung";
bool has = lstExcludeLibs.Any(cus => lstExcludeLibs.Contains(strSearch.ToUpper()));
我想找出字符串strSearch的一部分是存在于lstexcludedlib .
结果表明,.any
只寻找精确匹配。是否有可能使用类似或通配符搜索
这在linq中可能吗?
我可以使用foreach和contains来实现它,但是我想使用LINQ来使它更简单。
编辑:我试过列表。包含,但它似乎也不起作用你弄反了,应该是:-
List<string> lstExcludeLibs = new List<string>() { "CONFIG", "BOARDSUPPORTPACKAGE", "COMMONINTERFACE", ".H", };
string strSearch = "BoardSupportPackageSamsung";
bool has = lstExcludeLibs.Any(cus => strSearch.ToUpper().Contains(cus));
Btw -这只是一个观察,但是,恕我直言,你的变量名前缀'lst'和'str'应该被忽略。这是对匈牙利符号的误解,是多余的。
我认为这一行应该是:
bool has = lstExcludeLibs.Any(cus => cus.Contains(strSearch.ToUpper()));
这对你有用吗?
bool has = lstExcludeLibs.Any(cus => strSearch.ToUpper().Contains(cus));
或
bool has = lstExcludeLibs.Where(cus => strSearch.ToUpper().IndexOf(cus) > -1).Count() > 0;
或
bool has = lstExcludeLibs.Count(cus => strSearch.ToUpper().IndexOf(cus) > -1) > 0;