在通用列表中查找模式

时间:2014-02-13 03:38:13

标签: asp.net regex list arraylist generic-list

我有一个通用列表,我想在列表中搜索与某种模式匹配的项目。

例如,如果我的列表包含:

  • 站立
  • 安妮
  • 斯坦

如果我的模式是“an”,那么无论如何,我都需要在列表中搜索文本中包含“an”的任何项目。在这种情况下,它将返回:立场,安妮和斯坦。

这是我到目前为止(TextBox1包含模式):

string str = array1.Find(item => item == TextBox1.Text.Trim());

if (str != "")
{
    Label3.Text = "List Item Found";
}
else
{
    Label3.Text = "List Item Not Found.";
}

任何帮助表示赞赏!

谢谢!

2 个答案:

答案 0 :(得分:1)

你应该使用LINQ:

var matches = array1.Where(x => x.Contains(TextBox1.Text.Trim())).ToList();

要使其不区分大小写,请使用IndexOf

var matches = array1.Where(x => x.IndexOf(TextBox1.Text.Trim(), StringComparison.OrdinalIgnoreCase) != -1).ToList();

答案 1 :(得分:1)

var regex = new RegEx("an", RegexOptions.IgnoreCase);
var anyMatches = array1.Any(x => regex.IsMatch(x));
if(anyMatches)
{
    Label3.Text = "List Item Found";
}
else
{
    Label3.Text = "List Item Not Found";
}