2012-05-02 4 views
9

나는 서명이있는 사전이 있습니다 : Dictionary<int, List<string>>. 서명이있는 조회로 변환하고 싶습니다 : .사전을 조회로 변환하려면 어떻게해야합니까?

Lookup<int, string> loginGroups = mapADToRole.ToLookup(ad => ad.Value, ad => ad.Key); 

을하지만 그것은 잘 작동하지 않습니다 :

나는 시도했다. 그것은 꽤 추한

,하지만 작동합니다 -

var lookup = dictionary.SelectMany(p => p.Value 
             .Select(x => new { p.Key, Value = x})) 
         .ToLookup(pair => pair.Key, pair => pair.Value); 

(I 주로 서식 이유로하지 않았다 당신은 대신 익명 형식의 KeyValuePair를 사용할 수 있습니다.) :

답변

17

당신은 사용할 수 있습니다. 어떤 코드를 대체 할 수 있습니까 사전과 함께 시작 하는가? 아마도 더 깨끗할 것입니다.

+0

나는 생각한다 :'Select (x => new {Key = p.Key, Value = x})' –

+0

@SaeedAmiri : 아니, 나는 쓴 것을 의미했다. 그것은 그대로 잘 작동 할 것입니다.'Key' 속성 이름이 유추됩니다. –

+0

니스 결코 나는 그것을 결코 시도하지 않았다 :) –

관련 문제