2011-06-29 11 views
6

Tratando de consolidar este ...Definir matriz y claves de manera literal - C#

string[] array = new string[]; 

array[0] = "Index 0"; 
array[3] = "Index 3"; 
array[4] = "index 4"; 

en una línea ...

Ejemplo en PHP

$array = array(0 => "Index 0", 3 => "Index 3", 4 => "Index 4"); 

Sé que puede hacer esto

string[] array = { "string1", "string2", "string3" } 

Pero ¿cómo? ¿Obtengo los índices apropiados allí?

Respuesta

9

suena como que realmente después de un Dictionary<int, string> en lugar de un régimen tradicional de C#:

var dictionary = new Dictionary<int, string> 
{ 
    { 0, "Index 0" }, 
    { 3, "Index 3" }, 
    { 4, "Index 4" } 
}; 
4

En C# no se puede. Si desea índices específicos, debe pasar en null valores para mantener el lugar del objeto vacío.

Parece que en realidad estás buscando un Dictionary<TKey, TValue>.

2

Hasta donde sé, no puede omitir los números de índice en el conjunto normal (por ejemplo, 0,1,2 y luego 4 sin 3). Necesita utilizar una estructura de datos diferente, como Dictionary o Hashtable.

Hashtable ht = new Hashtable() 
{ 
    {"key1", "value1"}, 
    {"key2", "value2"} 
}; 
0

Según mi entender, no puede definir matrices en la forma que desee. Los otros críticos han indicado que puede utilizar matrices asociativas (diccionarios)

A lo sumo se puede crear una solución alternativa:

string[] array = {"array0", "", "array2", "array3"};

o

string[] array = new string[4]; array[0] = "array0"; array[2] = "array2";

Cuestiones relacionadas