2011-07-29 4 views
0

나는 addresscollection에 대한 카운트를 얻기 위해 where 조건과 함께 람다 식을 사용했습니다. 일부 addresscollection 객체에는 null 값이 있습니다. 어떤 이유로 개체를 개체의 인스턴스로 설정하지 않습니다. 예외를 파헤쳐 보면 {Name = "Boolean"FullName = "System.Boolean"}과 같은 반환 형식이 발견되고 {Boolean} 매개 변수가 반환됩니다. 이 예외를 처리하는 방법에 대한 아이디어. 여기에 내가 사용하던 내 람다 식이다 :이 라인이 예외를 던지는 경우개체가 람다 식을 사용하여 개체의 인스턴스로 설정되지 않았습니다.

var codes = (addresscollection.Where(n => n.Code.Contains("A") || n.Code.Contains("S") || n.Code.Contains("Q"))).Count() 

답변

1

컬렉션이 null이거나 코드 중 하나가 null입니다.

var codes = addresscollection == null ? 0 : 
      addresscollection.Count(n => n.Code != null && (
             n.Code.Contains("A") || 
             n.Code.Contains("S") || 
             n.Code.Contains("Q"))); 
+0

, 나는 어떤 코드가 null 인 1000 개의 레코드를 가지고 있지만 A, S, Q가있는 코드의 수와 null 인 코드의 수를 얻고 싶습니다. – user855408

+0

지미, 답장을 보내 주셔서 감사합니다. 문제가 해결되었습니다. 나는 람다식이 처음이다. 코드 ** addresscollection == null이 무엇인지 설명하십시오. 0 : ** 귀하의 회신에 의미. – user855408

+0

? : C#의 "IIF"연산자입니다. 첫 번째 부분은 "if"문이고 두 번째 부분은 true이면 반환 값이고 세 번째 부분은 false 인 경우 반환 값입니다. 이 경우 콜렉션이 null이면'codes'가 0이 될 것이고 그렇지 않으면이 라인의 나머지 부분의 결과가 될 것이라고 말한다. –

0

, 다음 중 하나 addressCollection 자체가 null의 경우, 또는 그것은 null 요소가 포함되는 경우, 또는 요소 중 하나가 널 (null)에 포함되어 있습니다 Code 속성

+0

주소 집합에 null 인 일부 요소가 있습니다. – user855408

+0

그런 다음 Jimmy의 답변을 추가하면 다음과 같이됩니다. 'var codes = addresscollection == null? 0 : addresscollection.Count (n => n! = null && n.Code! = null && (n.Code.Contains ("A") || n.Code.Contains ("S") || n.Code. Contains ("Q"));'이것은 코드 자체를보기 전에 콜렉션 자체가 null이 아니도록 보장하고 각 요소를 null로 검사합니다. –

+0

나는 addresscollection.Where의 차이점을 궁금해했다. (n => n.Code.Contains ("A") || n.Code.Contains ("S") || n.Code.Contains ("Q ("A") || n.Code.Contains()())).) Count() ** and addresscollection.Count (n => n! = null && n.Code! = null && (n.Code.Contains ("S") || n.Code.Contains ("Q"))); ** – user855408

관련 문제