2014-04-16 2 views
0

나는 사전을LINQ 문 사전 첫 번째 키의 값

private Dictionary<string, string> ScannerMessages; 

을 한 후 나는이

public bool equalMessages() 
    { 
     lock (lockObj) 
     { 
      return (ScannerMessages.Values.ToList().Distinct().Count() < ScannerMessages.Values.ToList().Count) ? true : false; 
     } 
    } 

에 전화를하고 메시지가 동일한 경우는 그것을 돌려줍니다. 또한 절의 끝 부분에 값이 null 또는 비어 있지 않은지 확인하기 위해 두 번째 검사를 추가해야합니다. 당신은 당신이 할 수있는 null 이외의 값을 얻고 싶다면

public bool equalMessages() 
    { 
     lock (lockObj) 
     { 
      return ((ScannerMessages.Values.ToList().Distinct().Count() < ScannerMessages.Values.ToList().Count) && (ScannerMessages.Keys.First() *get the value here and check it !null or string.empty) ? true : false; 
     } 
    } 

답변

2

은 모든 값이 null 또는 비어 있지 않은 확인합니다.

+0

이것은 실제로 완벽하게 작동합니다 - 덕분에. – alykins

+0

+1 댕 나는 용감한 걸 잊었다. –

1

... 내가 이런 일을하려고했지만, 난 어디에 LINQ 문 (안 LINQ에서 가장 큰)으로 갈 확실하지 않다 이 :

ScannerMessages.Values.Where(v=>!string.IsNullOrEmpty(v)).ToList() 

하거나 카운트를 얻을 수

ScannerMessages.Values.Where(v=>!string.IsNullOrEmpty(v)).Count() 

또는

ScannerMessages[ScannerMessages.Keys.First()].Where(v=>!string.IsNullOrEmpty(v)).Count() 
모든 값이 null이 아니 비어 있지 않은 경우는 true를 돌려줍니다

ScannerMessages.Values.All(s => !string.IsNullOrEmpty(s)) 

:

+0

내가 필요한 것에 매우 가깝습니다. Count() ! string.IsNullOrEmpty (v)). Count()> 0))? 허위 사실; 하지만이 부분에 잘못된 인수 오류가 발생합니다 "string.IsNullOrEmpty (v)" – alykins