VB.Net - объект переменных данных с несколькими столбцами

Я хочу создать объект в памяти в VB.Net с несколькими столбцами. То, что я пытаюсь сделать, это создать индекс некоторых данных. Это будет выглядеть так:

1 ряд: 23 1 ряд 2: 5 1 ряд 3: 3 38 ...

Я знаю, что могу использовать для этого прямоугольный массив, но я хочу иметь возможность использовать операции indexOf для этого объекта. Есть ли такая структура в VB.Net?

WT


person Donnie Thomas    schedule 25.09.2009    source источник


Ответы (3)


Определите класс строк, а затем создайте список строк, например:

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")
person invert    schedule 25.09.2009

Если количество ячеек в каждой строке постоянно и вам не нужно увеличивать или уменьшать структуру, то, вероятно, лучшим выбором будет простой двумерный массив, поскольку он предоставляет наилучшие возможные характеристики локальности. Если он не отсортирован, вы можете реализовать indexOf с помощью простого линейного поиска.

person Philipp    schedule 25.09.2009

Вы можете сделать это с помощью словаря.

person reinierpost    schedule 25.09.2009