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

时间:2010-09-24 14:22:43

标签: 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) { ... }

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

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


实际上,为了澄清,我要求相当于上面的整个代码块,而不是只是 for循环。

6 个答案:

答案 0 :(得分:6)

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

foreach( var curLine in allLines ) {
  ...
}

答案 1 :(得分: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) { ... }

答案 2 :(得分:1)

我猜是

foreach (string currLine in allLines)
{
   ...
}

答案 3 :(得分:0)

foreach(string currLine in allLines) { ... }

答案 4 :(得分:0)

List<string> allLines = new List<string>
{
    "line 1",
    "line 2",
    "line 3",
};
foreach (string currLine in allLines) { ... } 

答案 5 :(得分:0)

看起来Vector只是一个简单的列表,所以这将是c#等价的

List<string> allLines = new List<string>();
allLines.add("line 1");
allLines.add("line 2");
allLines.add("line 3");
foreach (string currLine in allLines) { ... }