【发布时间】:2018-01-12 18:32:29
【问题描述】:
我正在尝试将文件和路径列表传递给仅接受 String(,) 的第三方方法。此选择可能因用户选择而异。
我认为下面将代表二维数组,包含文件的路径和名称。
myFiles As New List(Of Dictionary(Of String, String))()
但是当我必须将它传递给例如方法时
ProcessFiles(ByVal Attachments(,) As String)
有
ProcessFiles(myFiles.ToArray())
我得到了错误
"'Dictionary(Of String, string)() 的值不能转换为 String(,) 因为数组类型有不同的 尺寸。
如何定义我的列表来代表数组?
数组期望的布局为
(0,0) --> "\\location\Of\File"
(0,1) --> "filename"
(1,0) --> "\\location\Of\File2"
(1,1) --> "filename2"
【问题讨论】:
-
字典键进入
Attachments(X, ),然后值进入Attachments( , Y)?ToArray在字典(它本身是 2 个集合)上不会这样做。 -
那么什么集合会起作用呢? Attachments(,) 代表的是(0,0) 应该是路径(0,1) 的名字,(1,0) 路径和(1,1) 的名字。因为我不知道开始的文件数,所以我希望执行一个 toArray 列表可以解决它。
-
由于您的字典在列表中,因此 ToArray 只会返回一个字典数组。可能有一种 linqy 方式,但您可以迭代列表并将每个 KVP 复制到目的地
-
我突然重新考虑我的字典列表。我的意图是获得一个干净的集合以轻松转换为数组。 ToArray 可以用于 VB 中的二维数组吗?对不起,这一切都是新的,继承了一些旧的但对我来说是新的东西。
-
我/我们完全没有上下文,也不知道数据是什么样的。这些字典中有多少对 - 它们都只是 1 个键/值对还是它们是实际的集合。没有
To2DArray()方法所以答案取决于数据
标签: .net vb.net dictionary multidimensional-array