我有一个如下所示的词典.假设词典中有400个元素我想将这个词组分成4个大小相等的词典.我该怎么做呢?有了列表,我可以使用范围方法,但不知道该怎么做?
我不关心字典是如何拆分的,以便它们具有相同的大小.
Dictionary<string,CompanyDetails> coDic;
解决方法
您可以使用简单模数将字典分组:
int numberOfGroups = 4; int counter = 0; var result = dict.GroupBy(x => counter++ % numberOfGroups);
模数(%)使GroupBy被限制在0..3范围内的数字(实际上是0..numberOfGroups – 1).这将为您进行分组.
但是这个问题是它不保留顺序.这个做了:
decimal numberOfGroups = 4; int counter = 0; int groupSize = Convert.ToInt32(Math.Ceiling(dict.Count / numberOfGroups)); var result = dict.GroupBy(x => counter++ / groupSize);