1. El atributo común de la matriz, Longitud, devuelve el número de elementos. LongLength se utiliza cuando el número de elementos excede el rango de tipo int.
2. La clase Array es una clase abstracta y no puede utilizar el constructor para crear una matriz.
Pero se puede hacer
¿Ver copia simple en el portapapeles?
Matriz iArray = nuevo int[] { 1, 2, 3, 4 };
para (int i = 0; i < iArray.Length; i++)
{
Console.WriteLine(iArray.GetValue(i));
}
Matriz iArray = nuevo int[] { 1, 2, 3, 4 };
para (int i = 0; i < iArray.Length; i++)
{
Console.WriteLine(iArray.GetValue(i));
}
O utilice el método estático CreateInstance, especialmente cuando el tipo de elemento de la matriz no se conoce de antemano, puede definir la matriz de esta manera
El método SetValue se usa para configurar y el método GetValue se usa para leer.
¿Ver copia simple en el portapapeles?
Matriz matriz = Array.CreateInstance (tipo de (cadena), 3);
array.SetValue("Tom", 0);
array.SetValue("Jack", 1);
array.SetValue("Bill", 2);
para (int i = 0; i < matriz.Longitud; i++)
{
Console.WriteLine(array.GetValue(i));
}
Matriz matriz = Array.CreateInstance (tipo de (cadena), 3);
array.SetValue("Tom", 0);
array.SetValue("Jack", 1);
array.SetValue("Bill", 2);
para (int i = 0; i < matriz.Longitud; i++)
{
Console.WriteLine(array.GetValue(i));
}
※Este método también se puede utilizar para crear matrices multidimensionales.
3. Para copiar una matriz, utilice el método Clone().
Si los elementos de la matriz son de tipo valor, se copiarán todos los valores,
Si el elemento de la matriz es un tipo de referencia, copie la referencia
※ Si necesita una copia profunda de una matriz que contiene un tipo de referencia, debe iterar la matriz y crear un nuevo objeto.
Para ilustrar la copia de tipos de referencia, consulte la siguiente clase
¿Ver copia simple en el portapapeles?
persona de clase pública
{
cadena pública Nombre {obtener; conjunto;
cadena pública Apellido {obtener; conjunto;
Persona pública (cadena Nombre, cadena Apellido)
{
//Cuando el parámetro tiene el mismo nombre que un miembro de la clase, use esto para referirse al miembro de la clase (personalmente se recomienda no usarlo de esta manera)
this.FirstName = Nombre;
this.Apellido = Apellido;
}
//Reescribe la clase ToString
cadena de anulación pública ToString()
{
return string.Format("{0} {1}", Nombre, Apellido);
}
}
programa de clase
{
vacío estático principal (cadena [] argumentos)
{
Persona[] personas1 = nueva Persona[2];
personas1[0] = nueva Persona("Tom", "lin");
personas1[1] = nueva Persona("Jack", "Rader");
Persona[] personas2 = personas1.Clone() as Persona[];
personas2[0].FirstName = "Copia 2";
//Llamada para copiar la matriz fuente
Console.WriteLine(personas1[0].FirstName);
// El resultado es la copia 2, no Tom. Se puede ver que el método Clone solo copia la referencia.
Consola.Read();
}
}
persona de clase pública
{
cadena pública Nombre {obtener; conjunto;
cadena pública Apellido {obtener; conjunto;
Persona pública (cadena Nombre, cadena Apellido)
{
//Cuando el parámetro tiene el mismo nombre que un miembro de la clase, use esto para referirse al miembro de la clase (personalmente se recomienda no usarlo de esta manera)
this.FirstName = Nombre;
this.Apellido = Apellido;
}
//Reescribe la clase ToString
cadena de anulación pública ToString()
{
return string.Format("{0} {1}", Nombre, Apellido);
}
}
programa de clase
{
vacío estático principal (cadena [] argumentos)
{
Persona[] personas1 = nueva Persona[2];
personas1[0] = nueva Persona("Tom", "lin");
personas1[1] = nueva Persona("Jack", "Rader");
Persona[] personas2 = personas1.Clone() as Persona[];
personas2[0].FirstName = "Copia 2";
//Llamada para copiar la matriz fuente
Console.WriteLine(personas1[0].FirstName);
// El resultado es la copia 2, no Tom. Se puede ver que el método Clone solo copia la referencia.
Consola.Read();
}
}
3. La clase Array también implementa la clasificación por burbujas de elementos en la matriz, el método Sort.
Para matrices simples, puede ordenar directamente
Array.Sort(iArray); donde iArray es una matriz int
-