如何将一个字典分成“n”个部分

3

我需要使用LINQ表达式来拆分我的字典。我需要将其拆分成两部分。有人可以帮助我吗?

var myDictionary = new Dictionary<int, int>();
var halfOfDictionary = myDictionary.ToDictionary(...)

2
如何分割?您想在一个集合中获取键,另一个集合中获取值(您不需要使用Linq)?还是您想基于某些条件构建包含原始键值对的两个新字典的一部分?请更具体地说明。 - p.s.w.g
你这样做的意图是什么?也许有更好的方法来实现你想要的。 - Anthony Forloney
1个回答

4
// remove OrderBy if ordering is not important
var ordered = dictionary.OrderBy(kv => kv.Key);
var half = dictionary.Count/2;
var firstHalf = ordered.Take(half).ToDictionary(kv => kv.Key, kv => kv.Value);
var secondHalf = ordered.Skip(half).ToDictionary(kv => kv.Key, kv => kv.Value);

它运行良好!谢谢! - user3818229
这里假设 (dictionary.Count % 2 == 0)。除非C#在整数除法方面有所不同。 - Braden Brown
@BradenBrown 我认为这个除法没有问题。结果是一个整数。同样的数字被取出并跳过了(没有 off-by-one 错误)。 - mafu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接