如何匹配列表中的字符串

时间:2011-11-08 08:55:19

标签: linq

我有一个像

这样的字符串列表

var target = new List<string>() { "C", "C-sharp", "java" };

我有一个字符串请求= “C是一种编程语言”

此列表应与字符串匹配,并应返回

C,C-sharp

我该怎么做?

2 个答案:

答案 0 :(得分:3)

这是linq的解决方案

var m = from t in target
                where t[0] == 'C'
                select t;

答案 1 :(得分:2)

使用Linq和String.Contains

var filtered = target.Where(str => str.Contains("C"));

没有Linq的另一个选择是使用List<T>.RemoveAll更改现有列表:

target.RemoveAll(str => !str.Contains("C"));

如果你真的需要正则表达式(对于更复杂的东西),你也可以使用:

Regex validate = new Regex(".a.", RegexOptions.IgnoreCase);
 var filtered = target.Where(str => validate.Match(str).Success);
相关问题