我注意到几年前我写过的一些代码,在考虑优化时,我认为这可能是一个可以改进的领域。我有以下内容:
var xml = new StringBuilder("");
foreach (var product in products)
{
xml.Append(product.AsXML()); // gives an xml string.
}
return String.Format("<products>{0}</products>", xml);
随着数据库中产品数量的增加,xml字符串可能会非常大,我想知道是否有更好的方法可以做到这一点。
JD
答案 0 :(得分:1)
我会将Linq用于XML link
您可以尝试这样的事情:
var prod = new List<string>();
prod.Add("Apples");
prod.Add("Oranges");
var doc = new XElement("Product");
foreach(String p in prod){
doc.Add(new XElement("products", p));
}
Debug.WriteLine(doc.ToString());
像这样输出
<Product>
<products>Apples</products>
<products>Oranges</products>
</Product>
这意味着你并不喜欢Strings。
干杯
伊恩
答案 1 :(得分:1)
使用LINQ to XML表示该段代码的惯用方法看起来更像是:
var element = new XElement("products",
products.Select(p => XElement.Parse(p.AsXml())));
return element.ToString();
虽然它更适合您可以在内存中表示XML的情况。如果没有,我相信您最好的选择是使用XmlWriter。