VB6 Tuple Equivalente?
tuples built-in (4)
Las colecciones de variantes pueden ser bastante flexibles y, a menos que realmente las supere, el rendimiento no es un problema:
Private Sub SomeCode()
Dim Pair As Variant
Dim ListOfPairs As Collection
Set ListOfPairs = New Collection
With ListOfPairs
Pair = Array("this", "that")
.Add Pair
.Add Array("herp", "derp")
.Add Array("weet", "tweet")
MsgBox .Item(1)(0) ''Item index is base-1, array index base-0.
Pair = .Item(2)
MsgBox Pair(1)
ReDim Pair(1)
Pair(0) = "another"
Pair(1) = "way"
.Add Pair
MsgBox .Item(4)(1)
End With
End Sub
Estoy portando un código C # a VB6 porque las aplicaciones heredadas. Necesito almacenar una lista de pares. No necesito hacer búsquedas asociativas, solo necesito poder almacenar pares de elementos.
El fragmento del que estoy transfiriendo se ve así:
List<KeyValuePair<string, string>> listOfPairs;
Si tuviera que portar esto a C ++, usaría algo como esto:
std::list<std::pair<string, string> > someList;
Si esto fuera Python, usaría una lista de tuplas.
someList.append( ("herp", "derp") )
Estoy buscando un tipo de biblioteca, pero me conformaré con otra cosa si es necesario. Estoy tratando de ser PEREZOSO y no tener que escribir cYetAnotherTinyUtilityClass.cls para obtener esta funcionalidad, o recurrir a la manipulación de cadenas tan a menudo abusada.
Intenté buscar en Google, pero VB6 no está bien documentado en línea, y mucho de lo que hay está desafiado. Si alguna vez has visto BigResource , sabrás a qué me refiero.
¿Clase de lista? (vea la sección VB): http://msdn.microsoft.com/en-us/library/6sh2ey19#Y0
Clase de diccionario? http://msdn.microsoft.com/en-us/library/xfhwa508
Podrías usar una colección
dim c as new collection
c.add "a", "b"
Si es literalmente solo para almacenamiento, puede usar un Type
:
Public Type Tuple
Item1 As String
Item2 As String
End Type
Es un poco más conciso que necesitar una clase para hacer el almacenamiento.
El problema con los Types
(conocidos más ampliamente como UDT) es que existen restricciones sobre lo que puede hacer con ellos. Puede hacer una matriz de UDT. No puedes hacer una colección de UDT.
En términos de .Net son más similares a Struct
.