【问题标题】:C# - Nested LoopC# - 嵌套循环
【发布时间】:2017-01-26 16:35:14
【问题描述】:

我正在做一个简单的 c# 练习。问题是我想显示如下输出:

输出

样本 1 => 一个

样本 2 => b

样本 1 => c

样本 2 => d

样本 1 => e

样本 2 => f

这是输入1:

Sample 1 => 
Sample 2 => 

这是输入 2:

a
b
c
d
e
f

这是我的代码

foreach (string input1 in RichTextBox1.Lines)
{
    foreach (string input2 in RichTextBox2.Lines)
    {
        RichTextBox3.Text += input1 + input2 + Environment.NewLine;
    }
}

但它不起作用。谁能帮助我。谢谢你。。

【问题讨论】:

  • 我不认为你需要一个嵌套循环,也许一个 int 来翻转记住input1 的位置就可以了
  • "it doe's not work" 是一个无用的、不具体的问题描述,特别是考虑到缺乏一个好的minimal reproducible example 可以可靠地重现您遇到的任何问题。

标签: c# loops for-loop foreach nested-loops


【解决方案1】:

你需要对应两个序列的元素。所以你可以很容易地使用 LINQ 的 Zip 方法来实现这样的结果(同样通过使用 String.Join 方法,我们没有使用任何循环。):

richTextBox3.Text = String.Join(Environment.NewLine, 
                    Enumerable.Repeat(richTextBox1.Lines, richTextBox2.Lines.Count())
                    .SelectMany(c => c).Zip(richTextBox2.Lines, (f, s) => f + " => " + s));

【讨论】:

    【解决方案2】:

    您可以尝试使用模(%),并使用 RichTextBox2.Lines 作为外循环。

    for (int i=0; i<RichTextBox2.Lines.Length; i++)
    {
        var length = RichTextBox1.Lines.Length;
        RichTextBox3.Text += RichTextBox1.Lines[(i%length)] + RichTextBox2.Lines[i] + Environment.NewLine;
    }
    

    看起来很复杂,但即使有样本 3、样本 4 等,模数也能满足您的需求。

    【讨论】:

      【解决方案3】:

      下面是可以为您提供预期输出的代码:

      int i = 0;
      foreach (var input2 in RichTextBox2.Lines)
      {
          string input1 = RichTextBox1.Lines[i % RichTextBox1.Lines.Length];
          RichTextBox3.Text += input1 + input2 + Environment.NewLine;
          i++;
      }
      

      【讨论】:

        【解决方案4】:

        您的问题是您正在循环您的第二个输入......对于每个第一个输入!一次又一次,一次又一次。

        所以:这里只需要 一个 循环。下面是一些开始使用的伪代码:

        ... first check that both line counts are equal
        for (int i=0; i<linecount; i++) {
            RichTextBox3.Text += input1[i] + input2[i] + Environment.NewLine
        }
        

        input1[i] 基本上翻译为:例如,您必须将两个初始框的内容推送到一个数组中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-02-23
          • 2014-09-14
          • 2017-07-08
          • 2015-05-29
          相关资源
          最近更新 更多