Matrizes e coleções
Armazenar grupos de itens relacionados de dados é um requisito básico da maioria dos aplicativos de software; duas maneiras principais de fazer isso com matrizes e coleções.
Matrizes
Matrizes são coleções de objetos do mesmo tipo.Como os arrays podem ser praticamente qualquer comprimento, eles podem ser usados para armazenar milhares ou até mesmo milhões de objetos, mas o dimensionar deve ser decidimos quando a matriz é criada.Cada item da matriz é acessada por um índice, que é apenas um número que indica a posição ou o slot em que o objeto está armazenado na matriz.Arrays podem ser usados para armazenar os dois Tipos de referência and Tipos de valor.
Arrays de único dimensional
Uma matriz é uma coleção de objetos indexada.Uma matriz unidimensional de objetos é declarada como este:
type[] arrayName;
Muitas vezes, você inicializar os elementos da matriz ao mesmo time, como este:
int[] array = new int[5];
O valor padrão dos elementos de matriz numérica é zero e padrão de elementos de referência para null, mas você pode inicializar valores durante a criação de matriz, como este:
int[] array1 = new int[] { 1, 3, 5, 7, 9 };
Ou, até mesmo assim:
int[] array2 = {1, 3, 5, 7, 9};
Arrays use índices com base em zero, para que o primeiro elemento na matriz é o elemento 0.
string[] days = {"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat"};
System.Console.WriteLine(days[0]); // Outputs "Sun"
Matrizes multidimensionais
Conceitualmente, uma matriz multidimensional com duas dimensões é semelhante a uma grade.Uma matriz multidimensional com três dimensões é semelhante a um cubo.
// declare multidimension array (two dimensions)
int[,] array2D = new int[2,3];
// declare and initialize multidimension array
int[,] array2D2 = { {1, 2, 3}, {4, 5, 6} };
// write elements in a multidimensional array
for (int i=0; i<2; i++)
{
for (int j=0; j<3; j++)
{
array2D[i,j] = (i + 1) * (j + 1);
}
}
// read elements in a multidimensional array
for (int i=0; i<2; i++)
{
for (int j=0; j<3; j++)
{
System.Console.Write(array2D[i,j]);
}
System.Console.WriteLine();
}
Matrizes denteadas
Uma variação da matriz multidimensional é a matriz denteada: uma matriz de matrizes.Uma matriz denteada é uma matriz unidimensional e cada elemento propriamente dito é uma matriz.Os arrays de elemento não são necessários ser todos do mesmo dimensionar.
Declarar uma matriz denteada como este:
int[][] jaggedArray = new int[3][];
Isso cria uma matriz de três matrizes.Esses conjuntos podem ser inicializados como este:
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];
Usando a demonstrativo foreach
The foreach demonstrativo geralmente é usada para acesso cada elemento armazenado em uma matriz:
int[] numbers = { 4, 5, 6, 1, 2, 3, -2, -1, 0 };
foreach (int i in numbers)
{
System.Console.Write("{0} ", i);
}
//Output: 4 5 6 1 2 3 -2 -1 0
Arrays de objetos
Criando uma matriz de objetos, em vez de uma matriz de tipos de dados simples, sistema autônomo números inteiros, é um processo de duas partes.Primeiro declarar a matriz e, em seguida, você deve criar os objetos que são armazenados na matriz.Este exemplo cria uma classe que define um CD de áudio.Em seguida, ele cria uma matriz que armazena 20 CDs de áudio.
namespace CDCollection
{
// Define a CD type.
class CD
{
private string album;
private string artist;
private int rating;
public string Album
{
get {return album;}
set {album = value;}
}
public string Artist
{
get {return artist;}
set {artist = value;}
}
public int Rating
{
get {return rating;}
set {rating = value;}
}
}
class Program
{
static void Main(string[] args)
{
// Create the array to store the CDs.
CD[] cdLibrary = new CD[20];
// Populate the CD library with CD objects.
for (int i=0; i<20; i++)
{
cdLibrary[i] = new CD();
}
// Assign details to the first album.
cdLibrary[0].Album = "See";
cdLibrary[0].Artist = "The Sharp Band";
cdLibrary[0].Rating = 10;
}
}
}
Coleções
Uma matriz é apenas uma das muitas opções para armazenar conjuntos de dados usando translation from VPE for Csharp.A opção que você seleciona depende de vários fatores, sistema autônomo o modo sistema autônomo você pretende manipular ou acessar sistema autônomo itens.Por exemplo, um lista é geralmente mais rápida do que uma matriz se você deve inserir itens no início ou no meio da coleção.Outros tipos de coleções de classes incluem MAP, árvore e pilha; cada um tem suas próprias vantagens.Para obter mais informações, consulte System.Collections e System.Collections.Generic.
O exemplo a seguir mostra como usar o List<T> classe. Observe que, ao contrário de Array classe, itens podem ser inseridas no meio da lista. Este exemplo restringe os itens da lista para que eles devem ser seqüências de caracteres.
public class TestCollections
{
public static void TestList()
{
System.Collections.Generic.List<string> sandwich = new System.Collections.Generic.List<string>();
sandwich.Add("bacon");
sandwich.Add("tomato");
sandwich.Insert(1, "lettuce");
foreach (string ingredient in sandwich)
{
System.Console.WriteLine(ingredient);
}
}
}
Consulte também
Tarefas
Como: Passar matrizes de objetos para métodos
Conceitos
Translation from VPE for Csharp linguagem Primer
Referência
Matrizes (Guia de programação do C#)
Classes coleção (guia de programação C#)