是否有更快的方法来计算XmlNodeList ?
本文关键字:计算 XmlNodeList 方法 是否 | 更新日期: 2023-09-27 18:06:15
我从XML中读取了几个RegEx定义,计数函数大约需要47.3%的时间。有没有更好/更快的方法来完成这项工作?
private string[] XmlNodesToString(XmlNodeList TagName)
{
int a = TagName.Count; //47,3%
int i = 0;
StringBuilder sbTemp = new StringBuilder();
while (a > 0)
{
if (TagName[i].InnerText != "null")//11,8%
{
sbTemp.AppendLine(TagName[i].InnerText);
}
i++;
a--;
}
char[] cSplitDef = { ''n' };
return (sbTemp.ToString().Split(cSplitDef, StringSplitOptions.RemoveEmptyEntries));
}
我很高兴我得到的任何帮助,谢谢:)
只遍历节点:
private string[] XmlNodesToString(XmlNodeList TagName)
{
return XmlNodeList.Cast<XmlNode>()
.Select(n => n.InnerText)
.Where(t => !String.IsNullOrEmpty(t))
.ToArray();
}
您不需要获取节点计数,然后通过索引和构建字符串访问节点,之后应该拆分。
如果LINQ不可用:
private string[] XmlNodesToString(XmlNodeList nodes)
{
List<string> result = new List<string>();
foreach(XmlNode node in nodes)
if (!String.IsNullOrEmpty(node.InnerText))
result.Add(node.InnerText);
return result.ToArray();
}