-3

我正在尝试找到一种解决方案,通过使用通配符在列表中查找项目。

例如,如果我搜索,battle我必须查看具有以下名称的列表结果:1battle battle2 abattlef等。

我知道 C# 中的通配符是*,但list.IndexOf("*battle*")它不起作用。

任何帮助将不胜感激。

4

4 回答 4

5

使用以下 linq:

list.Where(str => str.Contains("battle"));
于 2013-09-17T10:33:50.570 回答
3

假设 .NET3.5 或更高版本使用 linq:

var results = list.Where(x => x.IndexOf("battle", StringComparison.OrdinalIgnoreCase) > -1);
于 2013-09-17T10:30:12.810 回答
2

使用以下正则表达式:

        Regex pattern = new Regex(".*battle.*");

        bool isMatch = pattern.IsMatch("battle");

可以在此处找到正则表达式类文档。

于 2013-09-17T10:26:34.057 回答
0

您需要迭代列表并匹配正则表达式。

正则表达式的功能在以下位置实现:http: //msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx

于 2013-09-17T10:27:53.473 回答