¿Por qué necesitas una matriz vacía? ¿Que estás tratando de hacer?
Sr. T.
77
@MrT. No es realmente relevante para la pregunta.
James
1
@James: tal vez haya una forma más elegante de hacer lo que sea que esté tratando de hacer.
Sr. T.
44
@aquanat: aunque ya se ha aceptado una respuesta y no conozco su código o la lógica detrás de esto, humildemente le sugeriría que no devuelva una matriz vacía sino nula y que compruebe desde la función de llamada si el valor devuelto es nulo o no. Creo que sería mucho más elegante, legible y eficiente.
Sr. T.
2
La razón por la que no desea devolver nulo es que el consumidor del método tiene que verificar si es nulo. Por ejemplo, el consumidor del método podría poner el valor devuelto en un foreach y si se devuelve una matriz vacía, no hay problema. Sin embargo, si se devuelve nulo, debe haber una comprobación de nulo antes de repetir el valor devuelto
¿Por qué las cadenas están en mayúsculas y no en mayúsculas en sus ejemplos?
Notalie.
1
@newStackExchangeInstance, acaba de copiar el código "tal cual" de la pregunta. Ambas líneas se compilan bien, aunque estoy de acuerdo en que seguir un estilo es mejor.
Andrei
15
Si está utilizando .net 4.6, tienen una nueva sintaxis que puede usar:
using System;// To pick up definition of the Array class.var myArray =Array.Empty<string>();
No es necesario editar esta respuesta, ya que las respuestas sirven al propósito general, y no a la pregunta específica por decir. Responde "¿Cuál es la sintaxis para declarar e inicializar una matriz" y es una cita del enlace que publiqué. OP puede reemplazar intcon stringsi le gusta.
CodeCaster
1
Su sintaxis no es válida.
string[] arr =newstring[5];
Eso creará arruna matriz de cadenas referenciada, donde se encuentran todos los elementos de esta matriz null. (Dado que las cadenas son tipos de referencia )
Esta matriz contiene los elementos de arr[0]a arr[4]. El newoperador se utiliza para crear la matriz e inicializar los elementos de la matriz a sus valores predeterminados. En este ejemplo, todos los elementos de la matriz se inicializan en null.
Respuestas:
Prueba esto
fuente
c# Array.Empty<string>()
Su sintaxis es incorrecta:
o
fuente
Si está utilizando .net 4.6, tienen una nueva sintaxis que puede usar:
fuente
Puedes probar esto
fuente
Los constructores de matrices son diferentes. Aquí hay algunas formas de hacer una matriz de cadenas vacía:
(lo siento, en el móvil)
fuente
Esas cosas rizadas a veces son difíciles de recordar, por eso hay una excelente documentación :
fuente
int
constring
si le gusta.Su sintaxis no es válida.
Eso creará
arr
una matriz de cadenas referenciada, donde se encuentran todos los elementos de esta matriznull
. (Dado que las cadenas son tipos de referencia )Esta matriz contiene los elementos de
arr[0]
aarr[4]
. Elnew
operador se utiliza para crear la matriz e inicializar los elementos de la matriz a sus valores predeterminados. En este ejemplo, todos los elementos de la matriz se inicializan ennull
.Single-Dimensional Arrays (C# Programming Guide)
fuente
Si debe crear una matriz vacía, puede hacer esto:
Si no conoce el tamaño, también puede usarlo
List<string>
comofuente
Lo siguiente debería funcionar bien.
fuente