c# - 如何使用 LINQ/Divide and Conquer 方法以优雅的方式迭代一个循环或无循环

标签 c# linq data-structures

1
12
123
1234
12345

我曾尝试使用 2 个 FOR 循环来实现这一目标,并尝试使用一个循环进行递归。

public static void Main(string[] args) 
{ 
    DisplayNumberPyramid(1); 
} 

public static void DisplayNumberPyramid(int i)
{
    if(i<=5)
    {
        for(int j=1;j<=i;j++)
        {
            Console.Write(j);
        }
        Console.Write("\n");
        DisplayNumberPyramid(i+1);
    }
    Console.ReadLine();
}

使用 LINQ/DnC 方法(带一个循环和不带循环)预计会得到相同的输出。

最佳答案

Linq 解决方案

var results = Enumerable.Range(1, 5)
                        .Select(x => string.Concat(Enumerable.Range(1, x)));

foreach(var result in results)
   Console.WriteLine(result);

如果你真的不想要foreach

Console.WriteLine(string.Join("\r\n",results));

或者for循环

for (var i = 1; i <= 5; i++)
{
   for (var j = 1; j <= i; j++)
      Console.Write(j);
   Console.WriteLine();
}

输出

1
12
123
1234
12345

关于c# - 如何使用 LINQ/Divide and Conquer 方法以优雅的方式迭代一个循环或无循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57620295/

相关文章:

c# - GetXml方法时DataSet是否支持复杂类型?

c# - Azure IoT Adge BLE 模块 - Linux 容器的 BLE 实现

c# - 使用 LINQ select 返回异步任务

c# - 如何在linq where子句中比较int和string

c++ - 比较两个字母数字字符串

algorithm - 具有 O(1) 随机访问和删除的有序列表

arrays - 根据匿名哈希数组中的另一个值直接访问值

c# - 如何动态地将 JSON 转换为正确的 DTO 类?

c# - “将应用程序与商店关联”选项未显示是 visual studio ultimate 2013 for windows phone 8.1 silverlight 项目

c# - LINQ to SQL 表达式 "Orderby"帮助