我有一个通用列表,我想在列表中搜索与某种模式匹配的项目。
例如,如果我的列表包含:
如果我的模式是“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.";
}
任何帮助表示赞赏!
谢谢!
答案 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";
}