c# – 将字符串转换为XML的最快方法
发布时间:2020-12-15 19:37:47 所属栏目:百科 来源:网络整理
导读:嘿伙计们 – 有一个问题. 我们有一个使用=(:()的XMLIDList助手 我正在寻找的是最快的方法.之前它不是问题,因为列表已经是 10项,但我们添加了一个新功能,可以传递15k项目,你可以想象..它的狗慢! public static string EncodeGuidListToXML(IListGuid element
嘿伙计们 – 有一个问题.
我们有一个使用=(:()的XMLIDList助手 我正在寻找的是最快的方法.之前它不是问题,因为列表已经是< 10项,但我们添加了一个新功能,可以传递15k项目,你可以想象..它的狗慢! public static string EncodeGuidListToXML(IList<Guid> elementsToEncode) { if (elementsToEncode == null || elementsToEncode.Count == 0) return String.Empty; string beginItemNode = BeginItemNode; string endItemNode = EndItemNode; string xml = BeginRootNode; foreach (Guid item in elementsToEncode) { xml += beginItemNode + item.ToString().ToUpper() + endItemNode; } xml += EndRootNode; return xml; } 谢谢. 解决方法
最好的方法是不要使用字符串连接开头,IMO.使用XML API.构建一个XDocument或XmlDocument,然后将其转换为最后的字符串.虽然你的逻辑目前相当简单,但只要你开始需要转义或需要转义的值,你真的不想复制真正的XML API的所有逻辑……所以使用现有的.
这是一个如何重写当前方法的示例: public static string EncodeGuidListToXml(IList<Guid> guids) { if (elementsToEncode == null || elementsToEncode.Count == 0) { return ""; } return new XDocument( new XElement("Root",guids.Select(guid => new XElement("Item",guid.ToString().ToUpper())) )).ToString(); } 如果你真的想坚持直接构建字符串,StringBuilder确实是要走的路. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |