¿Cómo puedo crear una matriz de cadenas unidimensional vacío?VB.NET matriz de cadenas vacío
Respuesta
Dim strEmpty (-1) como secuencia
Votación positiva porque es correcta. Sin embargo, para mayor claridad, prefiero Dim strEmpty() As String = New String() {} como Mark ofrece y SoMoS respalda. Sin embargo, Mark describe dos técnicas que no son equivalentes ... vea ese comentario. –
Actualizar ... Encontramos lo siguiente para ser equivalente y tiene menos ceremonias: Dim myArray() = New String() {} –
Eso está en la parte superior 10 de la sintaxis más fea que vi en mi vida; =) –
No sé por qué te gustaría, pero el C# forma sería
string[] newArray = new string[0];
supongo que VB no será muy diferente a este.
Si usted está construyendo una matriz vacía para que pueda rellenarlo con los valores más tarde, que realmente debería considerar el uso de
List<string>
y convertirlo en una matriz (si realmente lo necesita como un array) con
newListOfString.ToArray();
Algo así como:
Dim myArray(9) as String
le daría un conjunto de 10 cuerdas ref erences (cada uno apuntando a Nada).
Si no está seguro del tamaño en el momento de la declaración, se puede declarar una matriz de cadenas como esto:
Dim myArray() as String
Y a continuación, se puede señalar que en una matriz de tamaño apropiado de cadenas más tarde:
ReDim myArray(9) as String
ZombieSheep tiene razón sobre el uso de una lista si no conoce el tamaño total y necesita rellenarlo dinámicamente. En VB.NET que sería:
Dim myList as New List(Of String)
myList.Add("foo")
myList.Add("bar")
Y a continuación, para obtener una matriz de esa lista:
myList.ToArray()
@ Marcos
Gracias por la corrección.
FYI, tenga cuidado con ReDim
-ing
Es un poco peligroso a veces. como goto
¿De qué manera es 'ReDim' peligroso ? –
@chakrit Redim funciona bien como operador goto. – GGSoft
La matriz que creó por Dim s (0) As Stringno está vacío
en VB.Net, el subíndice se utiliza en la matriz es el índice del último elemento. VB.Net por defecto comienza a indexar en 0, por lo que tiene una matriz que ya tiene un elemento.
Debería intentar usar System.Collections.Specialized.StringCollection
o (incluso mejor) System.Collections.Generic.List(Of String)
. Suman casi lo mismo que una matriz de cadenas, excepto que son mucho mejores para agregar y eliminar elementos. Y seamos honestos: Rara vez se crea una matriz de cadenas vacío sin querer añadir al menos un elemento a la misma.
Si realmente desea una matriz de cadena vacía, declarar así:
Dim s As String()
o
Dim t() As String
Joel, esto no proporciona el comportamiento solicitado. Cada uno de estos, t y s son Nada. YonahW quería una matriz vacía que proporciona la solución de GR8DA, aunque prefiero: Dim strEmpty() Como String = New String() {} –
VB es 0-indexed in array declarations, así como seomthing Dim myArray(10) as String
le da elementos. Es un error común al traducir de los lenguajes C.
lo tanto, para una matriz vacía, cualquiera de los siguientes sería trabajar:
Dim str(-1) as String ' -1 + 1 = 0, so this has 0 elements
Dim str() as String = New String() { } ' implicit size, initialized to empty
Siempre hago Dim str() como String = New String() {} porque creo que es la mejor manera de ver que es un conjunto de cadenas VACÍO "{}" –
Marcar, Dim str (0) produce una matriz con una longitud de 1 con un NULL en el índice 0. El segundo, Dim str() ... {} produce una matriz vacía con una longitud de cero como YonahW quería. –
@RandyEppinger es correcto (y lo ha sido durante los últimos 3 años ...). str (0) produce una matriz de longitud 1 (siendo 0-indexado significa que la longitud es +1 la declaración). Debería haber puesto str (-1) (que, cuando +1 te da una longitud de 0). –
Otra forma de hacer esto:
Dim strings() As String = {}
Prueba de que es una matriz de cadenas vacío:
MessageBox.Show("count: " + strings.Count.ToString)
Aparecerá un mensaje que indicará "count: 0".
No tiene que incluir String dos veces, y no tiene que usar Nuevo.
Cualquiera de las siguientes funcionará ...
Dim strings() as String = {}
Dim strings as String() = {}
- 1. vb.net: borrar todos los contenidos de matriz de cadenas
- 2. Declarar e inicializar una matriz de cadenas en VB.NET
- 3. Creador de cadenas C++ vacío
- 4. Reemplazo de caracteres en cadenas en VB.NET
- 5. Manipulación de cadenas con & o + en VB.NET
- 6. Borrar matriz de cadenas
- 7. Eliminar cadenas duplicadas en matriz de cadenas
- 8. Agregar objeto vacío y matriz
- 9. Cómo crear un diccionario vacío para argumento opcional en VB.NET
- 10. Convertir matriz de cadenas arrayList
- 11. LINQ retorno matriz de cadenas
- 12. Matriz de cadenas en SharedPreferences
- 13. matriz de cadenas en maravilloso
- 14. ¿Cómo puedo buscar una matriz en VB.NET?
- 15. Crear una matriz multidimensional en vb.net
- 16. VB.Net Inicializando una matriz sobre la marcha
- 17. Agregue una línea de corte entre cadenas concatenadas en VB.net
- 18. ¿Cómo agregar elementos de una matriz de cadenas a una lista de matriz de cadenas?
- 19. Problema con File IO y división de cadenas con Environment.NewLine en VB.Net
- 20. ¿Las cadenas de C# terminan con un hilo vacío?
- 21. Conversión de matriz de cadenas en matriz de flotantes
- 22. Convertir una matriz de cadenas a matriz de bytes
- 23. IndexOf con array de Strings en VB.NET
- 24. carriles - desplegable de una matriz de cadenas
- 25. Android - recuperar matriz de cadenas de recursos
- 26. inicialización de una matriz bidimensional de cadenas
- 27. Conversión de matriz de cadenas a java.util.List
- 28. Cómo comprobar si las cadenas en una matriz contienen cadenas de otra matriz
- 29. La diferencia entre + y & para unir cadenas en VB.NET
- 30. Convertir una matriz int a una matriz de cadenas
@Pacane favor [leer esto] (http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their -títulos). –