我有变量XElement content =
"...
<item text="Name-1" id="1" segment="1" secret-id="Find-Me">
<item text="Name-1-1" id="1.1">
<item text="Name-1-1-1" id="1.1.1" />
<item text="Name-1-1-2" id="1.1.2" />
</item>
</item>
..."
我还有 id = 1.1.2
的项目我需要找到此项目的第一个父项,其中包含属性 segment =“1”并获取其 secret-id
如何使用LINQ执行此操作?
答案 0 :(得分:2)
你的意思是“最亲近的祖先”?
string secretId = element.Ancestors()
.Where(x => (string) x.Attribute("segment") == "1")
.Select(x => (string) x.Attribute("secret-id"))
.FirstOrDefault();
如果:
,结果将为null答案 1 :(得分:1)
像这样:
item.Ancestors().Select(p => p.Attribute("secret-id")).First(a => a != null)