2010-09-24 153 views
1

我已经得到了沿线的一些Java代码:什么是Java的“for(String currLine:allLines)”的C#等价物?

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

基本上,它读取再大的文件转换成一个行向量在时间(我把它所有的记忆,因为我处理这一个m做一个多遍编译器)。

用C#做这件事的等效方式是什么?我假设我不需要恢复使用索引变量。


其实,澄清,我所要求的整个代码块相当于上面,不只是循环for

+0

我想'的(字符串currLine:allLines)'是相当于C#的foreach :-) – Nivas 2010-09-24 14:29:17

+1

这个问题是[笑话](http://stackoverflow.com/badges/39/c?userid=14860),对不对? – quantumSoup 2010-09-24 14:38:48

+0

不,@quantum,不幸的不是:-)虽然我已经做了一些WPF的东西,我不是Jon Skeet,而这实际上是我第一次不得不转换foreach类型的代码。针对C#问题的400个upvotes必须归因于某种C/C++/Java标记交叉。 – paxdiablo 2010-09-24 14:42:53

回答

5

List<string>可以通过索引访问和喜欢矢量自动调整。

所以:

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

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

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

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

1

我想这是

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

看起来矢量只是一个简单的列表,所以这将是C#相当于

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