通过LINQ将子项添加到XElement

时间:2015-06-18 12:38:15

标签: c# xml linq

我有一个类的集合,看起来像:

public class Group
{
   public string Name { get; set; }
}

private ObservableCollection<Group> _groups;

现在我想从组中创建一个xml结构,如下所示:

<Ou>
    <Group>AAA</Group>
    <Group>BBB</Group>
    <Group>CCC</Group>
    <Group>DDD</Group>
</Ou>

我试过以下:

new XElement("Ou", //How continue here?)

但不知道如何继续编码。

3 个答案:

答案 0 :(得分:3)

像这样:

var element =
    new XElement(
        "Ou",
        new XElement("Group", "AAA"),
        new XElement("Group", "BBB"),
        new XElement("Group", "CCC"),
        new XElement("Group", "DDD"));

或者来自您的数据结构:

var element =
    new XElement("Ou",
        from g in _groups
        select new XElement("Group", g.Name));

答案 1 :(得分:1)

new XElement("Ou", _groups.Select(g => new XElement("Group", g.Name)));

答案 2 :(得分:0)

您可以尝试以下代码:

var element = new XElement("Ou");
element.Add(new XElement("Group", "AAA"));
element.Add(new XElement("Group", "BBB"));
element.Add(new XElement("Group", "CCC"));
element.Add(new XElement("Group", "DDD"));
...