C# 使用XElement将Linq转换为XML if/foreach
似乎我在使用LINQtoXML时遇到了一些问题,我已经寻找了一些教程,但是没有任何关于from、select和语句的信息。我想知道如何用linq做foreach/if语句,如果你有教程,请告诉我。我现在的问题是,如果文本框中有内容,我只希望将某一部分放入XML中 代码显然不起作用,因为不能将if语句与我的XDocument放在一起。任何帮助/解释都会非常好C# 使用XElement将Linq转换为XML if/foreach,c#,asp.net,linq,linq-to-xml,C#,Asp.net,Linq,Linq To Xml,似乎我在使用LINQtoXML时遇到了一些问题,我已经寻找了一些教程,但是没有任何关于from、select和语句的信息。我想知道如何用linq做foreach/if语句,如果你有教程,请告诉我。我现在的问题是,如果文本框中有内容,我只希望将某一部分放入XML中 代码显然不起作用,因为不能将if语句与我的XDocument放在一起。任何帮助/解释都会非常好 if(txtPr3_Chain.Text != "") {
if(txtPr3_Chain.Text != "")
{
new XElement("Property_Info",
new XAttribute("Chain", txtPr3_Chain.Text),
new XElement("City" ,txtPr3_City.Text ),
new XElement("AdRating" ,AdRating3.CurrentRating.ToString()),
new XElement("YourRating" ,YourRating3.CurrentRating.ToString() ),
new XElement("Comment" ,txtPr3_Comments.Text)),
}
当文本值不为空时,您是否只是试图构造一个新的
XElement
试试这个:
XElement element = null;
if (txtPr3_Chain.Text != "")
{
element = new XElement("Property_Info",
new XAttribute("Chain", txtPr3_Chain.Text),
new XElement("City", txtPr3_City.Text),
new XElement("AdRating", AdRating3.CurrentRating.ToString()),
new XElement("YourRating", YourRating3.CurrentRating.ToString()),
new XElement("Comment", txtPr3_Comments.Text));
}
当文本值不为空时,您是否只是试图构造一个新的
XElement
试试这个:
XElement element = null;
if (txtPr3_Chain.Text != "")
{
element = new XElement("Property_Info",
new XAttribute("Chain", txtPr3_Chain.Text),
new XElement("City", txtPr3_City.Text),
new XElement("AdRating", AdRating3.CurrentRating.ToString()),
new XElement("YourRating", YourRating3.CurrentRating.ToString()),
new XElement("Comment", txtPr3_Comments.Text));
}
为什么不使用始终存在的部分创建XDocument,然后在后面插入/附加其他部分,在这里您可以使用常规for或if为什么不使用始终存在的部分创建XDocument,然后在后面插入/附加其他部分,在这里您可以使用常规for或if
//未经测试
IEnumerable GetFields()
{
如果(txtPr3_City.Text!=null)
收益率返回新项目(“城市”,txtPr3_City.Text);
....
}
元素=新元素(“属性信息”,
新XAttribute(“Chain”,txtPr3_Chain.Text),
GetFields());
//未经测试
IEnumerable GetFields()
{
如果(txtPr3_City.Text!=null)
收益率返回新项目(“城市”,txtPr3_City.Text);
....
}
元素=新元素(“属性信息”,
新XAttribute(“Chain”,txtPr3_Chain.Text),
GetFields());
您发布的代码毫无意义,并且您没有真正解释您想要做什么,也没有解释foreach/if语句的含义。您当然可以使用foreach遍历集合,然后使用if语句在循环中执行有条件的操作。不过,这与LINQ没有太大关系。下次我会尽量说得更清楚一些,尽管其他人似乎都理解了,因为每个答案都帮助了我。你发布的代码非常没有意义,你没有真正解释你想做什么,也没有解释foreach/if语句的含义。您当然可以使用foreach遍历集合,然后使用if语句在循环中执行有条件的操作。不过,这与LINQ没有太大关系。下次我会尽量说得更清楚一些,尽管其他人似乎都理解了,因为每个答案都帮助了我。谢谢这一点,不过对于未来,我将在Xdocument中做更多的foreach类型循环。。。如果你有任何教程,这将是伟大的,因为我似乎找不到任何好的感谢这是有效的,虽然在未来,我会做更多的foreach类型循环,在Xdocument。。。如果你有任何教程,这将是伟大的,因为我似乎找不到任何好的汉克斯,这与第一个答案的组合工作,谢谢!谢谢,这是第一个答案的组合,谢谢!