通过lambda表达式获取子节点值
本文关键字:子节点 获取 表达式 lambda 通过 | 更新日期: 2023-09-27 18:26:22
我想使用lambda表达式从name
节点和fix
节点获取值。
<Issue>
<name>asdasasdasd</name>
<fix>zxcczxczxczzxc </fix>
</Issue>
我的尝试是
GlobalVariables.issuesList = doc.Descendants("Issue").Select(s => new IssueModel(s.Value, s.Value) { }).AsEnumerable();
您的问题还很不清楚,但我怀疑您可能想要类似以下内容:
// I would strongly discourage you from using global variables...
var issues = doc.Descendants("Issue")
.Select(x => new IssueModel((string) x.Element("name"),
(string) x.Element("fix")))
.ToList();
ToList()
调用将强制立即评估查询;如果没有它,每次在issues
上迭代时都会重新评估它。
请注意,如果Issue
中缺少name
或fix
元素,那么使用上面的代码,您将获得一个null引用。您可以使用x.Element("name").Value
(fix
也是如此),在这种情况下,如果元素丢失,您将立即获得异常。