LINQ를 사용하여 사전을 필터링하고 동일한 유형의 사전으로 반환하는 방법


87

다음 사전이 있습니다.

Dictionary<int,string> dic = new Dictionary<int,string>();
dic[1] = "A";
dic[2] = "B";

사전의 항목을 필터링하고 결과를 동일한 변수에 다시 할당하고 싶습니다.

dic = dic.Where (p => p.Key == 1);

같은 유형의 [ <int,string>] 에서 결과를 사전으로 반환하려면 어떻게 해야합니까?

시도 ToDictionary했지만 작동하지 않습니다.

미리 감사드립니다.


11
나중에 확실한 접근 방식을 시도했지만 작동하지 않는 경우 시도한 코드를 게시하십시오.
Jon Skeet

답변:


193

ToDictionary갈 길입니다. 그것은 않는 일을 - 당신은 그냥 아마도, 잘못을 사용하고 있었다. 이 시도:

dic = dic.Where(p => p.Key == 1)
         .ToDictionary(p => p.Key, p => p.Value);

난 당신이 가정했다 가졌 정말 다른 원하는 Where오직 하나의 키를 찾을 현재 하나로서, 필터를 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.