我已经编写了这个 LINQ to xml 查询:
Dim xd1 As XDocument = XDocument.Load("C:\doc1.xml")
Dim xd2 As XDocument = XDocument.Load("C:\doc2.xml")
Dim xd3 As XDocument = XDocument.Load("C:\doc3.xml")
Dim q = From a In xd1...<row>, b In xd2...<row>, c In xd3...<row> Where
a.@Field1 = "pippo" AndAlso b.@Field2 = a.@RifField2 AndAlso c.@Field3 = a.@RifField3 Select
b.@Field4, b.@Field5, c.@Field6
Dim s As String = ""
For Each a In q
s &= a.Campo4 & " - " & a.Campo5 & " - " & a.Campo6 & vbCrLf
Next
TextBlock1.Text = s
但是这段代码需要大约 5 秒才能执行。当然我会更改查询,但是在调试时我已经看到该行
暗淡 q = 从...
需要一个istant来执行,并且接下来的每一行都会很快消失,直到循环“For Each”完成要滚动的项目并且它必须退出。然后执行停止 5 秒,然后循环退出。
如果我写,我会得到同样的延迟
Dim q = (From ... ).ToArray
or else if I write
Dim i As Long = q.Count
最奇怪的是,需要很长时间才能看到项目列表完成,并且必须退出循环。一个细节:查询 q 只有 8 个项目。
你有什么建议可以解决我的性能问题吗?皮莱吉