我可以在不遍历整个列表的情况下执行此操作吗?
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/