我正在尝试找到一种解决方案,通过使用通配符在列表中查找项目。
例如,如果我搜索,battle
我必须查看具有以下名称的列表结果:1battle
battle2
abattlef
等。
我知道 C# 中的通配符是*
,但list.IndexOf("*battle*")
它不起作用。
任何帮助将不胜感激。
我正在尝试找到一种解决方案,通过使用通配符在列表中查找项目。
例如,如果我搜索,battle
我必须查看具有以下名称的列表结果:1battle
battle2
abattlef
等。
我知道 C# 中的通配符是*
,但list.IndexOf("*battle*")
它不起作用。
任何帮助将不胜感激。
使用以下 linq:
list.Where(str => str.Contains("battle"));
假设 .NET3.5 或更高版本使用 linq:
var results = list.Where(x => x.IndexOf("battle", StringComparison.OrdinalIgnoreCase) > -1);
使用以下正则表达式:
Regex pattern = new Regex(".*battle.*");
bool isMatch = pattern.IsMatch("battle");
可以在此处找到正则表达式类文档。
您需要迭代列表并匹配正则表达式。
正则表达式的功能在以下位置实现:http: //msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx