类似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来使它更简单。

编辑:我试过列表。包含,但它似乎也不起作用

类似SQL的LIST搜索和c#中的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;