gpt4 book ai didi

c# - 如何使用 LINQ 将泛型序列转换为三角形?

转载 作者:太空宇宙 更新时间:2023-11-03 21:02:38 25 4
gpt4 key购买 nike

如果我有一个序列IEnumerable<T> (不是数字,只是 T ):

[ a, b, c, d ]

如何返回帕斯卡或弗洛伊德三角形的排序:

a
ab
abc
abcd

所以会是IEnumerable<IEnumerable<T>>

想知道是否有一种方法可以使用 LINQ 优雅地实现这一点,而不是使用循环手动实现。

最佳答案

这是一个方法:

T[][] ToTriangle<T>(IEnumerable<T> input)
{
var inputAsList = input as List<T> ?? input.ToList();
return inputAsList.Select((t, i) => inputAsList.Take(i + 1).ToArray()).ToArray();
}

从控制台应用程序:

static void Main(string[] args)
{
var input = "Hello, world!";
var output = ToTriangle(input);
foreach (var set in output)
{
Console.WriteLine(string.Join("",set));
}
Console.ReadLine();
}

(字符串是字符数组。)

H
He
Hel
Hell
Hello
Hello,
Hello,
Hello, w
Hello, wo
Hello, wor
Hello, worl
Hello, world
Hello, world!

关于c# - 如何使用 LINQ 将泛型序列转换为三角形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43859725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com