我正在使用一个巨大的数据列表,我将其解析为xml。对于这个问题,请按照许多GB大小和数亿个实例的顺序进行思考。我从最初的数据列表开始,并将其解析为一个唯一的哈希集,我可以使用它来消除重复,然后我将其解析为xml并保存。我最终得到了类似这种结构的东西。
<class>...
</class>
<instance>...
</instance>
.
.
.
<instance>
</instance>
<class>
</class>
<instance>
</instance>
这显然不是很容易使用,所以我试图将它解析为所有类,然后是所有实例。我使用了以下代码的修改。
XElement xmlTree = new XElement("Root",
new XElement("Child1", 1),
new XElement("Child2", 2),
new XElement("Child3", 3),
new XElement("Child4", 4),
new XElement("Child5", 5)
);
XElement child1 = xmlTree.Element("Child1");
child1.AddAfterSelf(
new XElement("NewChild", 10)
);
Console.WriteLine(xmlTree);
这基本上是我想要的,但由于我没有名为class1 class2等的元素,所以它并不完美。我最终得到了这样的东西。
<class>
<id>1</id>
....
</class>
<class>
<id>42789945</id>
<class>
<class>
<id>363445297</id>
</class>...
我实际上希望这些类保持有序,而不是在它们之后反转。我很确定我可以切换到addbefore并使用实例并完成我想要的东西,但由于第一个实例会进入更深层的循环,我担心这可能会影响性能。到目前为止,这个事情在1-2分钟的范围内进行了我的优化,但是如果我深入了解这个过程,如果我不小心的话,它会持续数小时。
我的一个大问题是,我错过了一个更简单的方法来获取最后一个课程,但是在第一个实例之前还是会让我在实例之前添加它会让我受伤?
由于 麦
答案 0 :(得分:0)
我在等待答案的同时进行了测试。我会留下这个以防万一其他人遇到这个问题因为我没有找到类似的问题。当你使用AddBeforeSelf时,它会在第一次迭代时停止,即使之后有数百万次,所以切换到AddBeforeSelf没有给我的执行添加任何时间所以我会坚持使用它,除非有人只是说整个方法都是错误的。
麦
答案 1 :(得分:0)
试试这个
unityContainer.RegisterInstance(
"IntegrationEntityContent",
ConfigurationManager.ConnectionStrings["IntegrationEntities"].ConnectionString,
new ContainerControlledLifetimeManager())