Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在创建时将foreach循环放入XDocument中?_C#_Asp.net_Foreach_Linq To Xml - Fatal编程技术网

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

C# 如何在创建时将foreach循环放入XDocument中?,c#,asp.net,foreach,linq-to-xml,C#,Asp.net,Foreach,Linq To Xml,我正在创建的XDocument有一个小问题。我试图在文档创建过程中使用foreach循环,但我不知道如何实现它。 代码: 部分代码: XDocument doc = null; doc = new XDocument( new XDeclaration("1.0", "ISO-8859-1", "no"), new XElement("data", new XElement("meta", new XEleme

我正在创建的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"))
            );
}}
XDocument doc=null;
doc=新XDocument(
新的XDeclaration(“1.0”、“ISO-8859-1”、“编号”),
新XElement(“数据”,
新XElement(“meta”,
新XElement(“val”,
新XAttribute(“n”、“打印机”)、下拉打印机。选择editem.Text),
新XElement(“val”,
新XAttribute(“n”、“自动打印”)、“是”),
新XElement(“val”,
新XAttribute(“n”、“测试”),0)
),//在此之后,我需要遍历数据行,类似这样
foreach(ds3.Tables中的数据表dt)
{
foreach(数据行dr在dt.行中)
{
新元素(“某物”,
新的贡献(“某物”,菲尔德博士(“3”),
新XElement(“val”,
新的XAttribute(“n”、“某物”)、dr.Field(“0”)+“”+dr.Field(4)+“”+dr.Field(5)),
新XElement(“val”,
新的XAttribute(“n”,“某物”),dr.Field(“0”),
新XElement(“val”,
新的XAttribute(“n”,“某物”),dr.Field(“0”),
新XElement(“val”,
新的XAttribute(“n”,“某物”),dr.Field(“0”),
新XElement(“val”,
新的XAttribute(“n”、“某物”)、“SE”),
新XElement(“val”,
新的XAttribute(“n”,“某物”),dr.Field(“0”),
新XElement(“val”,
新的XAttribute(“n”,“某物”))
);
}}

使用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")),
                    ......
                    ......
                );
var something=来自ds.Tables.OfType()中的dt
来自t.AsEnumerable()中的dr
挑选
新元素(“某物”,
新的贡献(“某物”,菲尔德博士(“3”),
......
......
);

然后,您可以将变量
something
,放在
foreach
应该位于的位置。

使用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")),
                    ......
                    ......
                );
var something=来自ds.Tables.OfType()中的dt
来自t.AsEnumerable()中的dr
挑选
新元素(“某物”,
新的贡献(“某物”,菲尔德博士(“3”),
......
......
);
然后,您可以将变量
something
放在您的
foreach
应该在的位置