C# 列表中的类SQL搜索和C中的LINQ#
我有一个列表,其中包含需要排除的单词列表 我的方法是创建一个包含这些单词的列表,并使用Linq进行搜索C# 列表中的类SQL搜索和C中的LINQ#,c#,linq,C#,Linq,我有一个列表,其中包含需要排除的单词列表 我的方法是创建一个包含这些单词的列表,并使用Linq进行搜索 List<string> lstExcludeLibs = new List<string>() { "CONFIG", "BOARDSUPPORTPACKAGE", "COMMONINTERFACE", ".H", }; string strSearch = "BoardSupportPackageSamsung"; bool has = lstExcludeLibs
List<string> lstExcludeLibs = new List<string>() { "CONFIG", "BOARDSUPPORTPACKAGE", "COMMONINTERFACE", ".H", };
string strSearch = "BoardSupportPackageSamsung";
bool has = lstExcludeLibs.Any(cus => lstExcludeLibs.Contains(strSearch.ToUpper()));
List lstExcludeLibs=new List();
字符串strearch=“BoardSupportPackageSamsung”;
bool has=lstExcludeLibs.Any(cus=>lstExcludeLibs.Contains(strearch.ToUpper());
我想找出字符串strearch的一部分存在于lstExcludedLibs中
结果是,。任何
都只查找精确匹配。是否有可能使用like或通配符搜索
在林克这可能吗
我本可以使用foreach和contains实现它,但我想使用LINQ使它更简单
编辑:我尝试了列表。包含,但似乎也不起作用我认为行应该是:
bool has = lstExcludeLibs.Any(cus => cus.Contains(strSearch.ToUpper()));
我认为应该是:
bool has = lstExcludeLibs.Any(cus => cus.Contains(strSearch.ToUpper()));
你搞错了,应该是:-
List<string> lstExcludeLibs = new List<string>() { "CONFIG", "BOARDSUPPORTPACKAGE", "COMMONINTERFACE", ".H", };
string strSearch = "BoardSupportPackageSamsung";
bool has = lstExcludeLibs.Any(cus => strSearch.ToUpper().Contains(cus));
List lstExcludeLibs=new List();
字符串strearch=“BoardSupportPackageSamsung”;
bool has=lstExcludeLibs.Any(cus=>strearch.ToUpper().Contains(cus));
顺便说一句,这只是一个观察,但是,IMHO,您的变量名前缀'lst'和'str'应该是ommitted。这是对匈牙利符号的错误解释,是多余的。如果您理解错误,应该是:-
List<string> lstExcludeLibs = new List<string>() { "CONFIG", "BOARDSUPPORTPACKAGE", "COMMONINTERFACE", ".H", };
string strSearch = "BoardSupportPackageSamsung";
bool has = lstExcludeLibs.Any(cus => strSearch.ToUpper().Contains(cus));
List lstExcludeLibs=new List();
字符串strearch=“BoardSupportPackageSamsung”;
bool has=lstExcludeLibs.Any(cus=>strearch.ToUpper().Contains(cus));
顺便说一句,这只是一个观察,但是,IMHO,您的变量名前缀'lst'和'str'应该是ommitted。这是对匈牙利符号的错误解释,是多余的。这对您有用吗
bool has = lstExcludeLibs.Any(cus => strSearch.ToUpper().Contains(cus));
或
或
这对你有用吗
bool has = lstExcludeLibs.Any(cus => strSearch.ToUpper().Contains(cus));
或
或
这只是一个观察,但是,IMHO,您的变量名前缀'lst'和'str'应该是ommitted。这是对匈牙利符号的错误解释,是多余的。我在下面的回答中添加了注释只是一个观察,但是,IMHO,您的变量名前缀“lst”和“str”应该被注释。这是对匈牙利符号的错误解释,是多余的。我在下面的回答中添加了注释。以我的例子来说,你的建议总是错误的。我正在搜索
BoardSupportPackageSamsung
中的BoardSupportPackage
。通常情况下,Contains应该可以工作,但我尝试更改它时遇到了错误:bool has=lstExcludeLibs.Any(cus=>strearch.ToUpper().Contains(cus))ToUpper
和ToLower
是常见的技巧,但如果你想支持除英语以外的任何语言,这是个坏主意。请参阅此问题,以获得比ToUpper
:挑剔更好的解决方案。示例代码在土耳其语言环境下失败。Config的大写字母是CONFİG,因此不匹配。使用ToUpperInvariant()
是一个更好的选择。在我的例子中,我总是不相信你的建议。我正在搜索BoardSupportPackageSamsung
中的BoardSupportPackage
。通常情况下,Contains应该可以工作,但我尝试更改它时遇到了错误:bool has=lstExcludeLibs.Any(cus=>strearch.ToUpper().Contains(cus))ToUpper
和ToLower
是常见的技巧,但如果你想支持除英语以外的任何语言,这是个坏主意。请参阅此问题,以获得比ToUpper
:挑剔更好的解决方案。示例代码在土耳其语言环境下失败。Config的大写字母是CONFİG,因此不匹配。使用ToUpperInvariant()
是更好的选择。