【问题标题】:Increment groups of numbers in c# .net在 c# .net 中增加数字组
【发布时间】:2017-05-22 21:12:03
【问题描述】:

如果您有两组数字,每组包含数字 110,您将如何递增每个数字直到达到其上限?

例如,产生如下数字:

1.1
1.2
1.3

...

1.9
1.10
2.1
2.2
2.3

...

2.9
2.10

等等……

到目前为止,我的努力非常糟糕 - 我从 for 循环开始并没有得到一个像样的结果,转移到一个 while 循环并且仍然没有得到一个有效的解决方案,但这是我到目前为止所拥有的。

class Program
{
static void Main()
{
    int group01 = 1;
    int group01Max = 10;

    int group02 = 2;
    int group02Max = 10;

    while (group01 < group01Max)
    {
        while (group02 < group02Max)
        {
            Console.WriteLine(string.Format("{0}.{1}", group01, group02));
        }
    }
}
}

【问题讨论】:

  • 您好!你的第一次尝试是什么样的?也许如果您提供一些代码,我们可以让您知道它有什么问题?

标签: c# .net loops for-loop increment


【解决方案1】:

我不完全确定这是否是你要问的,但你的意思是这样的吗?

a = 10
b = 10
for(int i = 0; i < a; i++){
    string tmp = i.toString();
    for(int j = 0; j < b; j++){
        tmp += "." + j.toString();
    }
    Console.WriteLine(tmp);
}

编辑:使用 $"" 符号可以简化这一点,如下面的答案所示

a = 10
b = 10
for(int i = 0; i < a; i++){;
    for(int j = 0; j < b; j++){
        Console.WriteLine($"{i}.{j}");
    }

}

【讨论】:

  • 谢谢,这正是我要找的东西,如此简约和干净,而且开箱即用!
【解决方案2】:

可以通过将一个循环嵌套在另一个循环中来轻松完成。

foreach(var firstIndex in firstGroup)
{
    foreach(var secondIndex in secondGroup)
    {
        Console.WriteLine($"{firstIndex}.{secondIndex}");
    }
}

【讨论】:

  • 这很像下面的答案,并给出了想要的结果,谢谢!
【解决方案3】:
Enumerable.Range(1, 10).Select(n1 => Enumerable.Range(1, 10).Select(n2 => (n1, n2)))

或者如果你想要特殊的格式,

Enumerable.Range(1, 10).SelectMany(n1 => Enumerable.Range(1, 10).Select(n2 => $"{n1}.{n2}"))

【讨论】:

  • 这不是我想到的事情,我似乎无法让它发挥作用。 @Reese 的答案正是我想要的,但我很好奇这个例子的输出,以及在更大的一组数字上的性能差异
  • 尝试下载 LINQPad 并运行它?
猜你喜欢
  • 2017-07-03
  • 2018-11-28
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-04
  • 2013-05-22
  • 2016-06-28
  • 1970-01-01
相关资源
最近更新 更多