2014-12-07 5 views
0

은 내가 유일한 존재하는 경우 찾을 필요가 1, false; 2 true;... ; 9 true;다음 고유 문제를 해결하는 방법은 무엇입니까?

같은 <int, bool>,

의 사전을 가지고있다. 9 제외한 모든 거짓 경우

예를 들어, 내가 출력은 9

어떻게 이것을 달성 할 수 있습니까?

+0

있습니까 연속되는 정수는? –

+1

값 (IEnumerable로 처리됨)별로 그룹화하고 키 수를 확인할 수 있습니다. –

답변

3

할 수 있습니다 Value에 의해 그룹과 하나 개의 항목이있는 그룹 얻을 : 더 고유 한 값이없는 경우이 방지하기 위해 예외가 발생합니다

var result = dictionary 
      .GroupBy(x => x.Value) 
      .First(g => g.Count() == 1) // get the group 
      .First().Key; // get the first pair in the group and it's key 

를이 다음을 사용할 수 있습니다

var result = dictionary 
      .GroupBy(x => x.Value) 
      .FirstOrDefault(g => g.Count() == 1); 

if(result != null) 
{ 
    var value = result.First().Key; 
} 
+0

매우 강력합니다! Linq의 힘을 처음 보았습니다. 초보자 질문의 경우 해당 항목이 없으면 결과는 어떻게됩니까? –

+0

예외 : –

+0

예외를 피할 수있는 방법이 있습니까? –

관련 문제