查找列表中包含x或y的所有行?

Adr*_*ian 3 c# list .net-4.0

我可以不循环遍历整个列表吗?

List<string> responseLines = new List<string>();
Run Code Online (Sandbox Code Playgroud)

然后该列表填充大约300行文本.

接下来我想搜索列表并创建第二个列表,其中包含以"abc"开头或包含"xyz"的所有行.

我知道我可以为每个人做一个但是有更好/更快的方式吗?

Luk*_*keH 7

您可以使用LINQ.这与使用性能没有什么不同foreach- 这几乎就是它在幕后的作用 - 但您可能更喜欢语法:

var query = responseLines.Where(s => s.StartsWith("abc") || s.Contains("xyz"))
                         .ToList();
Run Code Online (Sandbox Code Playgroud)

(如果你很乐意处理一个IEnumerable<string>而不是List<string>那么你可以省略最后的ToList通话.)