MSDN example显示此:
// Open the file to read from.
string[] readText = File.ReadAllLines(path);
foreach (string s in readText)
{
Console.WriteLine(s);
}
但我在想:
// Open the file to read from.
foreach (string s in File.ReadAllLines(path))
{
Console.WriteLine(s);
}
最佳答案
假设 readText
从未在其他地方使用过,这两个代码片段之间没有区别。
即使在第二种情况下,方法调用的结果最终也会存储在某个地方,即使该位置没有您可以在代码中引用的名称。 p>
顺便说一句,如果您只想遍历各行,则可以使用 ReadLines
而不是 ReadAllLines
来流式传输文本行,而不是在处理任何行之前急切地将整个文件加载到内存中。这可以防止在访问第一行之前出现较长的延迟,如果您在处理所有行之前最终退出循环,则可以显着提高速度(请记住,除了显式退出循环之外,这还可能由于异常而发生) ),并显着减少程序的内存占用,即使您最终处理了所有行。
关于c# - 使用 foreach 之前需要存储列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21560558/