2014-12-24 2 views
1

LINQ 표현식을 사용하여 사전을 분할해야합니다. 두 부분으로 나누어야합니다. 누군가 나를 도울 수 있을까요?"n"부분으로 사전을 분할하는 방법

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

분할 그것을 어떻게? 하나의 콜렉션에서 키를 가져오고 다른 콜렉션에서 값을 얻고 싶습니다 (Linq은 필요 없습니다). 또는 어떤 조건을 기반으로 원래 쌍의 일부를 포함하는 2 개의 새로운 사전을 구성하려고합니까? 더 구체적으로 말하십시오. –

+0

그렇게하기위한 귀하의 의도는 무엇입니까? 당신이 찾고있는 것을 성취 할 수있는 더 좋은 방법이있을 수 있습니다. –

답변

3
// 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); 
+0

잘 작동합니다! 고맙습니다! – user3818229