将DataTables从Web服务写入XML的最佳方法?

use*_*jaz 6 .net c# xml linq datatable

我正在尝试重构一些运行缓慢的代码,这些代码使用几个数据表的嵌套循环来编写XML.我读到使用linq编写xml会更快.我对linq并不精通,所以我希望能在这里得到一些帮助.

我需要提到的一些事情是当前架构使用webservice,它在dataTables中向我们返回数据.然后我们遍历数据表(迭代地),并且有几个导致几个嵌套循环.

例:

dt1 = Webservice.getStuff();

for each (datarow r1 in dt1.Rows) {

   dt2 = Webservice.getMoreStuff(r1[col1], r1[col2]);
   // write out some xml

   for each (datarow r2 in dt2.Rows) {

       dt3 = Webservice.getEvenMoreStuff(r2[col1], r2[col2]);
       // write out more xml 

       for each (datarow r3 in dt3.Rows) {
            // write out more xml 
       }

   }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,显而易见的原因,这非常缓慢.有没有办法加速使用linq?你们有什么建议作为一种更有效的方法来重构这个?如果细节含糊不清,我很抱歉......

我感谢任何人提供的任何帮助.

Jus*_*ner 14

在这种情况下,编写XML并不会减慢你的速度.与进行所有Web服务调用所花费的时间相比,该速度应该可以忽略不计.

我不会专注于编写XML,而是试图弄清楚如何压缩Web服务调用的数量,以便您可以一次获取所有数据,而不是像这样进行嵌套调用.

  • 在任何类型的大循环中的Web服务调用吓到我了 (3认同)
  • @Johnny:但随后要求'最快写'并不是那么有用. (2认同)