【问题标题】:What's the C# equivalent of Java's "for (String currLine: allLines)"?Java 的“for (String currLine: allLines)”的 C# 等价物是什么?
【发布时间】:2010-09-24 14:22:43
【问题描述】:

我有一些 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 循环。

【问题讨论】:

  • 我认为for(String currLine: allLines) 相当于 c# 的 foreach :-)
  • 这个问题是a joke,对吧?
  • 不,@quantum,不幸的是不是 :-) 虽然我做了一些 WPF 的东西,但我不是 Jon Skeet,这实际上是我第一次不得不转换foreach 种类。 C# 问题的 400 次投票肯定是由于某种 C/C++/Java 标记交叉。

标签: c# java for-loop equivalent


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    List&lt;string&gt; 可以通过索引访问并像 Vector 一样自动调整大小。

    所以:

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

    【讨论】:

      【解决方案3】:

      我猜是

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:
          List<string> allLines = new List<string>
          {
              "line 1",
              "line 2",
              "line 3",
          };
          foreach (string currLine in allLines) { ... } 
          

          【讨论】:

            【解决方案6】:

            看起来 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) { ... }
            

            【讨论】:

              猜你喜欢
              • 2017-10-29
              • 2011-10-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-12-18
              • 2011-01-10
              • 2016-07-26
              相关资源
              最近更新 更多