0

我正在使用 new 动态构建一个 XML 文件XElement(),在文件创建的中途,我需要遍历一组子记录并XElements为它们创建。我遇到的问题是XElement每次迭代需要创建超过 1 个。这是我的循环:

from t in trans.SalesTransactionLines
select new XElement("text", new XAttribute("lang", "en"), t.ItemName)

这很好用,但我需要XElement在每个“文本”元素之前添加一个额外的“位置”。这是我想要的那种东西,它不起作用:

from t in trans.SalesTransactionLines
select new XElement("position",new XAttribute("x", "40"), new XAttribute("y", "420")),
new XElement("text", new XAttribute("lang", "en"), t.ItemName)

这是我正在寻找的结果:

<position x="40" y="420" />
<text>Fender Classic Strat 70s Natural RN</text>
<position x="40" y="420" />
<text>Fender Classic 50s Tele White Blonde</text>
4

1 回答 1

0

改用基于方法的语法和SelectMany方法:

trans.SalesTransactionLines.SelectMany(x => new[] {
                                                new XElement("position",
                                                    new XAttribute("x", "40"),
                                                    new XAttribute("y", 420")),
                                                new XElement("text",
                                                    new XAttribute("lang", "en"),
                                                    x.ItemName)
})
于 2013-09-05T10:33:15.273 回答