我无权访问的实用程序代码是将行添加到SortedDictionary(Integer,RowData)我试图迭代。它将新的RowData添加到列表的末尾。
所以我认为正确的解决方案是复制SortedDictionary,然后循环它。我不必担心同步问题,因为新添加的内容总是在结束之后。
但是怎么做?我无法弄清楚语法,MS的文档是,嗯,"基本",而且API对我没有任何意义。我想要的是SortedDictionary的副本,制作另一个SortedDictionary。但我得到的是某种KeyValuePair数组,我似乎无法做出正面或反面。
Dim TempR as KeyValuePair(Of Integer, RowData)
pRowDatas.CopyTo(TempR, 0)
那个人告诉我它不能复制它,因为一个或另一个是一维数组而另一个不是。所以我试过
Dim TempR() as KeyValuePair(Of Integer, RowData)
pRowDatas.CopyTo(TempR, 0)
然后它抱怨TempR无效。但是你不能新,或者至少我不能。
我在这里做错了什么?有一个简单的方法吗?
答案 0 :(得分:0)
在示例代码中,您需要将数组初始化为pRowDatas
:
Dim TempR(0 To pRowDatas.Count-1) As KeyValuePair(Of Integer, RowData)
pRowDatas.CopyTo(TempR, 0)
您还可以使用ToArray
扩展方法:
Dim TempR As KeyValuePair(Of Integer, RowData) = pRowDatas.ToArray()
这些都不具有线程安全性。执行此操作的正确方法是在此处和实用程序代码中实现锁定。由于您无法访问代码,因此您的选项似乎有限,但其他人可能有一些想法。