什么是Java的"#(String currLine:allLines)"的C#等价物?

pax*_*blo 1 c# java for-loop equivalent

我有一些Java代码:

Vector<String> allLines = new Vector<String>();
allLines.add("line 1");
allLines.add("line 2");
allLines.add("line 3");
for (String currLine: allLines) { ... }
Run Code Online (Sandbox Code Playgroud)

基本上,它将一个大文件读入一个行向量,然后一次处理一个(因为我正在做一个多遍编译器,所以把它全部带入内存).

使用C#执行此操作的等效方法是什么?我在这里假设我不需要恢复使用索引变量.


事实上,为了澄清,我所要求的整个代码块相当于上面,而不是仅仅for循环.

xto*_*ofl 6

这将是foreach构造.基本上它能够IEnumerable从提供的参数中提取一个,并将所有值存储到提供的变量中.

foreach( var curLine in allLines ) {
  ...
}
Run Code Online (Sandbox Code Playgroud)


Nic*_*ler 5

List<string> 可以通过索引访问,并像Vector一样自动调整大小.

所以:

List<string> allLines = new List<string>();
allLines.Add("line 1");
allLines.Add("line 2");
allLines.Add("line 3");
foreach (string currLine in allLines) { ... }
Run Code Online (Sandbox Code Playgroud)