微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 将字典拆分为多个大小相等的字典

我有一个如下所示的词典.假设词典中有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);

原文地址:https://www.jb51.cc/csharp/97587.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐