假设我给定项的列表:分区给定的总的分区和分区数的列表
[A,B,C,d,E,F,G,H,I,J]
我要求这些分成3所列出,并采取第二列表:
[A,B,C,d] [E,F,G] [H,I ,J]
我该怎么做?
我使用涉及totalPartitions
和partitionNumber
的模运算的计算思维的功能将类似于
public List<Item> SplitItems(
List<Item> items,
int totalPartitions,
int partitionNumber) { }
我能够获取列表如果partitionNumber
为1(第一组) ,但我有问题获得partitionNumber
2及以上的名单。
@Blorgbeard:这是我到目前为止的代码。再次,我只能够处理的第一个分区:
int itemsCount = items.Count;
int setCount = itemsCount/totalPartitions + ((itemsCount%totalPartitions >= partitionNumber) ? 1 : 0);
return webItems.Take(setCount).ToList();
有多余项目时分割的规则是什么?总是在第一个分区?拆分第一个分区?您将10个项目拆分为3个小组,这些小组不会中断... – 2014-10-01 19:45:13
^您知道规则定义完好后,您可以轻松计算所需子列表的起始索引和结束索引,并使用Skip(跳过)和'拿'来获得该子列表。 – SimpleVar 2014-10-01 19:46:03
@ReedCopsey如果我有10个项目分成3组,那将是[1-4],[5-7],[8-10]。如果我有11个项目,那么它会是[1-4],[5-8],[9-11] – Katie 2014-10-01 19:50:35