如何添加XElement迭代元素?

时间:2016-10-25 11:01:40

标签: c# asp.net xml iteration xelement

这是我的代码:

var xml = new XElement("test", new[] {
    new XElement("group", new[] {
        new XElement("date", dateNow.ToString("dd/MM/yyyy HH:mm:ss"))
    }),

    new XElement("users", new[] {
        foreach(var item in in PlaceHolderCustom.Controls)
        {
            new XElement("nome", ((TextBox)item.FindControl("myTextBox")).Text)
        }
    })
});

我想在xml中设置一些固定字段(在元素“group”中)和一些将在占位符中迭代的字段。但是当我尝试添加一个新的“迭代”列表时,语法似乎是错误的。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

使用linq .Select执行foreach。此外,在创建数组时,new [] {}语法仅对new string[]有效。在您的情况下使用:

  • new XElement[] {}
  • 或者因为该方法获得params object[],您可以独立地给每个new XElement而不用数据包装

因此展示了传递XElements

集合的两种方式
var xml = new XElement("test",
    new XElement("group", new XElement[] {
        new XElement("date", dateNow.ToString("dd/MM/yyyy HH:mm:ss"))
    }),
    new XElement("users", PlaceHolderCustom.Control.Select(item =>
        new XElement("nome", ((TextBox)item.FindControl("myTextBox")).Text)).ToArray())
);