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

标签 c# list .net-4.0

我可以在不遍历整个列表的情况下执行此操作吗?

List<string> responseLines = new List<string>();

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

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

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

最佳答案

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

var query = responseLines.Where(s => s.StartsWith("abc") || s.Contains("xyz"))
                         .ToList();

(如果您乐于处理 IEnumerable<string> 而不是 List<string>,那么您可以省略最后的 ToList 调用。)

关于c# - 查找列表中包含 x 或 y 的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092598/

相关文章:

C# foreach 抽象的子级

.net - 使用Assembly.LoadFrom的loadFromRemoteSources错误

unit-testing - 运行单元测试时出现奇怪的 .net 4.0 异常

c# - 何时使用依赖属性

c# - ASP.NET 和 C# : MessageBox not shown when used in combination with Response. 重定向

c# - 使用扩展方法根据多个条件对 List<T> 进行流畅排序?

C#函数在预调用后的时间测量速度更快吗?

Python——将字符串转换为列表

python - Cython/python - cdef 类列表

c# - 防止 ViewModel 依赖的方法