如何在创建时将 foreach 循环放入 XDocument 中?

How do I put a foreach loop inside of a XDocument in creation?

我创建的 XDocument 有一个小问题。我正在尝试在文档创建中使用 foreach 循环,但我不知道如何实现它。 代码:

部分代码:

XDocument doc = null;
            doc = new XDocument(

new XDeclaration("1.0", "ISO-8859-1", "no"),
        new XElement("data",

        new XElement("meta",

            new XElement("val",
                new XAttribute("n", "printer"), DropDownPrinters.SelectedItem.Text),
            new XElement("val",
                new XAttribute("n", "autoprint"), "YES"),
            new XElement("val",
                new XAttribute("n", "test"), 0)
            ), //after this I need to loop through datarows, something like this

foreach (DataTable dt in ds3.Tables)
{
    foreach (DataRow dr in dt.Rows)
    {

        new XElement("something",
            new XAttribute("something", dr.Field<string>("3")),

            new XElement("val",
                new XAttribute("n", "something"), dr.Field<string>("0") + " " + dr.Field<string>(4) + " " + dr.Field<string>(5)),
            new XElement("val",
                new XAttribute("n", "something"), dr.Field<string>("0")),
            new XElement("val",
                new XAttribute("n", "something"), dr.Field<string>("0")),
            new XElement("val",
                new XAttribute("n", "something"), dr.Field<string>("0")),
            new XElement("val",
                new XAttribute("n", "something"), "SE"),
            new XElement("val",
                new XAttribute("n", "something"), dr.Field<string>("0")),
            new XElement("val",
                new XAttribute("n", "something"))
            );
}}

使用 LINQ 而不是 foreach,像这样:

var something = from dt in ds.Tables.OfType<DataTable>()
                from dr in t.AsEnumerable()
                select 
                new XElement("something",
                    new XAttribute("something", dr.Field<string>("3")),
                    ......
                    ......
                );

然后你可以把变量 something 放在你的 foreach 应该在的地方。