【发布时间】:2014-08-06 13:47:12
【问题描述】:
我正在尝试使用 LINQ 和“SELECT”函数中的“WHERE”函数获取一些数据
这是我的示例 XML
<Items>
<Extras>
<Extra Code="TEST1" Quantity="1" />
<Extra Code="TEST2" Quantity="1" />
</Extras>
<Options>
<OptionalExtra Description="Test 1" Code="TEST1" type="TESTING1" />
<OptionalExtra Description="Test 2" Code="TEST2" type="TESTING2" />
</Options>
</Items>
这是我的 LINQ 查询
bookingsInfo = xel.Descendants("Extras").Descendants("Extra") _
.Select(Function(f) New With { _
.Code = f.Attributes("Code").First.Value, _
.Type = f.Parent.Parent.Descendants("Options").Descendants("OptionalExtra") _
.Where(Function(g) g.Attributes("Code").First.Value = _
f.Attributes("Code").First.Value).Attributes("type").First.Value, _
.Quantity = f.Attributes("Quantity").First.Value _
})
“类型”是我遇到的问题,我不确定是什么问题。
我无法控制 XML 的布局方式,但我可以编辑 LINQ 查询没有问题。
有人有什么建议吗?
提前致谢
【问题讨论】:
-
您的 XML 没有 类型属性...那么您想得到什么?
-
对不起@JonSkeet,我在输入时错过了这一点!查看更新
-
好的,现在它就在那里,我们知道这就是“问题”——但你还没有真正描述过这个问题是什么。查询的目的是什么,目前发生了什么?
-
查询正在生成“CODE”和“QUANTITY”,因为这些只是属性,但是当我尝试去找父母,然后进入其他演员以获得“TYPE”时“代码”在每个失败中都匹配,并给我一个“序列不包含元素”——这有意义吗?抱歉在我的 OP 中没有更具描述性
-
不,这没有任何意义。如果您展示一个简短但完整的程序,其中包含预期输出和实际输出,这将更容易理解......