gpt4 book ai didi

c# - 将 IEnumerable 拆分为固定大小的 block (返回 IEnumerable> ,其中内部序列具有固定长度)

转载 作者:IT王子 更新时间:2023-10-29 03:53:41 24 4
gpt4 key购买 nike

<分区>

我想参加 IEnumerable<T>并将其分成固定大小的 block 。

我有这个,但由于所有的列表创建/复制,它看起来不够优雅:

private static IEnumerable<IEnumerable<T>> Partition<T>(this IEnumerable<T> items, int partitionSize)
{
List<T> partition = new List<T>(partitionSize);
foreach (T item in items)
{
partition.Add(item);
if (partition.Count == partitionSize)
{
yield return partition;
partition = new List<T>(partitionSize);
}
}
// Cope with items.Count % partitionSize != 0
if (partition.Count > 0) yield return partition;
}

还有更惯用的东西吗?

编辑:尽管这已被标记为 Divide array into an array of subsequence array 的副本它不是 - 这个问题涉及拆分数组,而这是关于 IEnumerable<T> 的.此外,该问题要求填充最后一个子序列。这两个问题密切相关但并不相同。

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