2

我想创建一个强类型的多维数组或集合,其中包含来自数据库的以下值:

  • 文件名(作为字符串)
  • 文件大小(整数)

要求:

  • 可通过索引访问(例如 Arr(i)(j)、Arr.Row(i) 等)
  • 高效(即快速且不占用资源)
  • 易于操作、添加、附加等。
  • .NET 3.5 兼容

感谢大家的精彩回答。这就是我去的... :)

Structure FileRecord
    Dim Name As String
    Dim Size As Integer

    Sub New(ByVal FileName As String, ByVal FileSize As Integer)
        Me.Name = FileName
        Me.Size = FileSize
    End Sub
    Sub New(ByVal Files() As FileRecord)
        For Each f As FileRecord In Files
            Dim fr As New FileRecord(f.Name, f.Size)
        Next
    End Sub
End Structure
4

4 回答 4

4

您不能拥有包含两种不同类型的多维数组。

相反,您通常会List(Of T)使用您的数据创建一个包含自定义类的单维数组(或 )。

在您的情况下,您可能需要以下内容:

Public Class FileRecord
    Public Property Name As String
    Public Property Size as Integer
End Class

然后,制作一个List(Of FileRecord)来保存您的数据。然后,您可以通过以下方式访问它:

Dim nameAtIndex = theList(i).Name
Dim sizeAtIndex = theList(i).Size
于 2012-06-08T18:19:14.217 回答
3

您可以使用通用列表集合:

Public Class MyItem   
  Public Property  FileName As String
  Public Property  FileSize As Integer   
End Class

现在你可以有一个列表:

Dim MyItems AS List(Of MyItem)
于 2012-06-08T18:18:00.263 回答
1

请记住,虽然它不是强类型的,但HashTable类在存储和检索大量数据方面表现最好。如果 FileName 是唯一的,那将是您的密钥。此外,您可以将哈希表包装在另一个类中,并提供用于添加和检索的强类型方法。

根据对此SO 帖子的回答,Dictionary(of T)提供了哈希表的通用实现。可能值得研究。

于 2012-06-08T18:33:20.183 回答
0

让我们保持超级简单。我真的不喜欢程序员让事情变得比他们需要的更复杂。

Dim Multi_Dimensional_Array As Object(,) = _
        {{"Item 1", "1", "2", "3", "4", "5"}, 
         {"Item 2", "6", "7", "8", 9"", "No More Items"}}

如果您愿意,可以将其从“对象”更改为“字符串”。

于 2014-04-07T19:11:26.243 回答