2014-02-08 33 views

回答

1

堆栈溢出问题,应该表现出的努力来解决这个问题最少量。这不是免费的代码服务。

尽管如此,以下应该产生的结果您正在请求:

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

为什么' “10” .Equals((串)EL)'代替'(INT)EL == 10',或' (string)el ==“10”'?这个语法看起来很奇怪。 – MarcinJuraszek

+1

@MarcinJuraszek如果文档中的任何ITEM_STATUS元素包含一个非整数值,那么''== =='会抛出一个'FormatException',所以这值得避免,除非您绝对确信每个'ITEM_STATUS '将包含一个整数值(或者如果你想要发生一个异常,如果它们中的任何一个是非整数的话)。避免使用字符串==是个人喜好,也是Java和C结转的一部分,但值得注意的是,在[某些情况下](http://stackoverflow.com/a/15090520/1945651)中, '=='可以在C#中为等效字符串生成'false'。 (续...) – JLRishe

+1

...最后,使用'LITERAL.Equals(VARIABLE)'而不是'VARIABLE.EQUALS(LITERAL)'是对NullReferenceException的防范。在这里可能不需要,但使用谨慎的,一贯的风格并没有什么坏处。 – JLRishe