2014-02-08 3 views

답변

1

스택 오버플로 질문이 문제를 해결하기 위해 최소한의 노력을 보여 주어야한다 ..() "ITEM_STATUS = 10"의는, 아래의 사진을 찾을 수 this.Please에 제발 도와주세요 카운트가 필요합니다. 이것은 무료 코드 서비스가 아닙니다. 그럼에도 불구하고

, 당신이 요청하는 결과를 생산해야 다음

var count = e.Descendants("ITEM_STATUS") 
      .Where(el => "10".Equals((string)el)) 
      .Count(); 
+1

왜' "10".Equals ((문자열) 엘)'대신 (INT) 엘 == 10', 또는''의 (string) el == "10"'? 이 구문은 이상하게 보입니다. – MarcinJuraszek

+1

@MarcinJuraszek'(int) el == 10'은 문서의'ITEM_STATUS' 엘리먼트 중 어떤 것이 정수가 아닌 값을 포함하고 있다면'FormatException'을 던질 것이기 때문에 피할 가치가 있습니다. 반드시'ITEM_STATUS '는 정수 값을 포함합니다 (또는 이들 중 하나가 정수가 아닌 경우 예외가 발생하도록하려는 경우). 문자열에 대해'=='을 사용하는 것은 개인적인 취향이며, Java와 C의 이월 비트이지만, [특정 상황] (http://stackoverflow.com/a/15090520/1945651)에서 주목할 가치가 있습니다. '=='는 C#에서 동일한 문자열에 대해'false'를 생성 할 수 있습니다. (계속 ...) – JLRishe

+1

... 마지막으로,'VARIABLE.Equals (LITERAL) '대신'LITERAL.Equals (VARIABLE)'을 사용하는 것은 NullReferenceException에 대한 보호 장치이다. 아마도 여기에 필요하지는 않지만 조심스럽고 일관된 스타일을 사용하는 것은 상처가되지 않습니다. – JLRishe

관련 문제