C# 将字符串与C中的模式匹配#

C# 将字符串与C中的模式匹配#,c#,regex,entity-framework,C#,Regex,Entity Framework,如何将多个字符串与模式进行比较 价值观: var items = new List<string> {"item1", "item2", "item123", "new_item123"}; 预期结果:“项目1”、“项目123”、“新项目123” 我们使用实体框架来搜索数据库中的数据 string ptrn = "item1"; foreach(string s in items) { if(s.IndexOf(ptrn) > -1) Console.WriteLine

如何将多个字符串与模式进行比较

价值观:

var items = new List<string> {"item1", "item2", "item123", "new_item123"};
预期结果:“项目1”、“项目123”、“新项目123”

我们使用实体框架来搜索数据库中的数据

string ptrn = "item1";
foreach(string s in items) {
   if(s.IndexOf(ptrn) > -1) Console.WriteLine(s);
}
像这样

string ptrn = "item1";
foreach(string s in items) {
   if(s.IndexOf(ptrn) > -1) Console.WriteLine(s);
}

如果您确实想使用
RegEx
执行此操作,您可以使用:

Regex r = new Regex("^item1$");
var result = items.Where(x => r.IsMatch(x)).ToList();

如果您确实想使用
RegEx
执行此操作,您可以使用:

Regex r = new Regex("^item1$");
var result = items.Where(x => r.IsMatch(x)).ToList();

尽管您可能会使用正则表达式:

var pattern = new Regex("/item1/");
var items = new List<string> {"item1", "item2"};

var matches = items.Where(pattern.IsMatch);
var模式=新正则表达式(“/item1/”);
var items=新列表{“item1”、“item2”};
var matches=items.Where(pattern.IsMatch);
为什么不干脆:

var items = new List<string> {"item1", "item2"};
var matches = items.Where(item => item.Contains("item1"));
var items=新列表{“item1”、“item2”};
var matches=items.Where(item=>item.Contains(“item1”);

尽管您可能会使用正则表达式:

var pattern = new Regex("/item1/");
var items = new List<string> {"item1", "item2"};

var matches = items.Where(pattern.IsMatch);
var模式=新正则表达式(“/item1/”);
var items=新列表{“item1”、“item2”};
var matches=items.Where(pattern.IsMatch);
为什么不干脆:

var items = new List<string> {"item1", "item2"};
var matches = items.Where(item => item.Contains("item1"));
var items=新列表{“item1”、“item2”};
var matches=items.Where(item=>item.Contains(“item1”);

我不认为他真的在搜索百分号。字符串“tem”会匹配,而“item11”不会匹配您的代码。他正在寻找包含“item1”的内容。我认为他并没有真正搜索百分号。字符串“tem”将匹配,而“item11”将不匹配您的代码。他正在寻找包含“item1”的东西。第一部分代码无法编译(未声明regex)@nvoigt,我有点匆忙,请查看问题中的更改第一部分代码无法编译(未声明regex)@nvoigt,我有点匆忙,请查看问题中的更改