使用通配符在列表中查找项目

时间:2013-09-17 10:24:51

标签: c#

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

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

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

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:3)

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

var results = list.Where(x => x.IndexOf("battle", StringComparison.OrdinalIgnoreCase) > -1);

答案 1 :(得分:3)

使用以下linq:

list.Where(str => str.Contains("battle"));

答案 2 :(得分:2)

使用以下正则表达式:

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

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

可以找到正则表达式类文档here

答案 3 :(得分:0)

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

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

中实现