加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:06:58 所属栏目:百科 来源:网络整理
导读:我有一个如下所示的词典.假设词典中有400个元素我想将这个词组分成4个大小相等的词典.我该怎么做呢?有了列表,我可以使用范围方法,但不知道该怎么做? 我不关心字典是如何拆分的,以便它们具有相同的大小. Dictionarystring,CompanyDetails coDic; 解决方法
我有一个如下所示的词典.假设词典中有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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读