gpt4 book ai didi

c# - 使用 LINQ(函数式编程)将列表缩减为两个较小的列表

转载 作者:行者123 更新时间:2023-11-30 20:14:14 25 4
gpt4 key购买 nike

大家好,我正在努力了解 LINQ 和 FP,如果这太天真了,请原谅我。我正在尝试使用 LINQ 进行一些字符串解析并映射到一个函数上,因此我需要将我的字符串拆分成更小的字符串。

我想将数组分成两个较小的列表。我可以使用 reduce (.Aggregate()) 来做到这一点吗?我试图找出如何应用 reduce 来返回一个列表,但我没有任何运气。

我想要的是:

myString.ToCharArray().Take(2)

映射到每个第二个元素。如果不将 take 应用于每个元素而不是每个第二个元素,我无法思考如何减少列表。

具体例子。

given (1, 2, 3, 4, 5, 6)

I want ((1, 2), (3,4), (5, 6))

澄清一下:

given "abcdef"

I want "ab", "cd", "ef"

为你们的帮助干杯。

最佳答案

Enumerable.Range(0, myString.Length)
.GroupBy(index => index / 2, index => myString[index])
.Select(eachGroup => new string(eachGroup.ToArray()));

请注意,上面的示例依赖于您对集合具有基于索引的访问权限这一事实。让它在每个 IEnumerable<T> 上工作没有这个限制:

collection.Select((e,i) => new { Index = i, Element = e })
.GroupBy(x => x.Index / 2, x => x.Element);

关于c# - 使用 LINQ(函数式编程)将列表缩减为两个较小的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/732514/

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