我写了这个简单的linq-to-xml查询,似乎使用linq语法无法避免null异常.我用错了吗?什么应该是正确的(和简短的)Linq2Xml语法?
var userData =
queryUserResponseData.Elements("user")
.Single(u => u.Element("username").Value == userName);
Run Code Online (Sandbox Code Playgroud)
<data>
<user>
<username>User1</username>
<userid>123</userid>
</user>
<user>
<username>User2</username>
<userid>456</userid>
</user>
<user>
<userid>999</userid>
</user>
</data>
Run Code Online (Sandbox Code Playgroud)
XElement和XAttribute有一些显式转换运算符,可将其值转换为特定类型.它们非常有用,因为当元素或属性丢失时返回null.
var userData = queryUserResponseData.Elements("user").Single(u => (string)u.Element("username") == userName);
Run Code Online (Sandbox Code Playgroud)