gpt4 book ai didi

c# - 给定总分区数和分区数对列表进行分区

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

假设我得到了一个项目列表:

[ A, B, C, D, E, F, G, H, I, J ]

我被要求将这些分成 3 个列表,然后取第二个列表:

[ A, B, C, D ] [ E, F, G ] [ H, I, J ]

我该怎么做?

我认为这个函数看起来像

public List<Item> SplitItems(
List<Item> items,
int totalPartitions,
int partitionNumber) { }

如果 partitionNumber 为 1(第一组),我可以使用涉及 totalPartitionspartitionNumber 的模运算的计算来获取列表,但我在获取 partitionNumber 2 及以上的列表时遇到问题。


@Blorgbeard:这是我目前拥有的代码。同样,我只能处理第一个分区:

int itemsCount = items.Count;
int setCount = itemsCount/totalPartitions + ((itemsCount%totalPartitions >= partitionNumber) ? 1 : 0);
return webItems.Take(setCount).ToList();

最佳答案

int smallPartitionSize = list.Count / totalPartitions;
int remainder = list.Count % totalPartitions;
int selectedPartitionSize = smallPartitionSize + (partitionNumber <= remainder) ? 1 : 0;
var start = (partitionNumber - 1) * smallPartitionSize + Math.Min(remainder, partitionNumber - 1);
return list.Skip(start).Take(selectedPartitionSize);

关于c# - 给定总分区数和分区数对列表进行分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26149205/

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