【问题标题】:VB.Net - multi-column data variable objectVB.Net - 多列数据变量对象
【发布时间】:2009-09-25 10:58:25
【问题描述】:

我想在 VB.Net 中创建一个具有多列的内存对象。我想要做的是创建一些数据的索引。它看起来像:

第 1 行:23 1 第 2 行:5 1 第 3 行:3 38 ...

我知道我可以使用矩形数组来执行此操作,但我希望能够在此对象上使用 indexOf 操作。 VB.Net中有这样的结构吗?

重量

【问题讨论】:

    标签: vb.net multidimensional-array


    【解决方案1】:

    定义一个行类,然后创建一个行列表,如下所示:

    Class row
        Inherits Collections.ArrayList
    End Class
    
    Dim cols As New List(Of row)
    

    现在您可以使用 x/y 符号访问您的对象:

    cols(0)(1)
    

    请注意,这只是一个简单的示例,您的结构未初始化且未键入。

    您还可以在自己的类中隐藏 IndexOf 函数,例如通过项目名称查找 indexOf:

    Class col
        Inherits Generic.List(Of Object)
        Shadows Function IndexOf(ByVal itemName As String) As Integer
            Dim e As Enumerator = Me.GetEnumerator
            While e.MoveNext
                If CType(e.Current, myType).name = itemName Then
                    Return e.Current
                End If
            End While
        End Function
    End Class
    

    然后您可以像这样访问它:

    Private cols As New col
    cols.IndexOf("lookingfor")
    

    【讨论】:

      【解决方案2】:

      如果每行中的单元格数量是恒定的,并且您不需要扩大或缩小结构,那么简单的二维数组可能是最佳选择,因为它展示了最佳的局部性特征。如果没有排序,可以通过简单的线性搜索实现indexOf。

      【讨论】:

        【解决方案3】:

        你可以用字典来做到这一点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多