Existe algum método para criar uma matriz dinâmica em C #?
Existe algum método para criar uma matriz dinâmica em C #?
Respostas:
Dê uma olhada em Listas Genéricas .
dynamic[]
msdn.microsoft.com/en-GB/library/dd264736.aspx (matriz de tipos dinâmicos) ou ExpandoObject
msdn.microsoft.com/ en-us / library /… Eu poderia -1 a resposta por não mencionar isso
Expandindo a resposta de Chris e Migol com um exemplo de código.
Usando uma matriz
Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");
Usando uma lista genérica. Nos bastidores, a classe List <T> usa um array para armazenamento, mas o faz de uma maneira que permite seu crescimento com eficiência.
List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];
Às vezes, matrizes simples são preferíveis às listas genéricas, uma vez que são mais convenientes (melhor desempenho para computação cara - Aplicativos de álgebra numérica, por exemplo, ou para troca de dados com software de estatística como R ou Matlab)
Neste caso, você pode usar o método ToArray () após iniciar sua lista dinamicamente
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");
string[] array = list.ToArray();
Obviamente, isso só faz sentido se o tamanho da matriz nunca for conhecido nem fixado ex-ante . se você já sabe o tamanho do seu array em algum ponto do programa , é melhor iniciá-lo como um array de comprimento fixo. (Se você recuperar dados de um ResultSet, por exemplo, poderá contar seu tamanho e iniciar uma matriz desse tamanho, dinamicamente)
Exemplo de matriz dinâmica:
Console.WriteLine("Define Array Size? ");
int number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter numbers:\n");
int[] arr = new int[number];
for (int i = 0; i < number; i++)
{
arr[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i < arr.Length; i++ )
{
Console.WriteLine("Array Index: "+i + " AND Array Item: " + arr[i].ToString());
}
Console.ReadKey();
Use a lista de arrays que na verdade é implementar array. Ele pega inicialmente um array de tamanho 4 e quando fica cheio, um novo array é criado com seu tamanho duplo e os dados do primeiro array são copiados para o segundo array, agora o novo item é inserido no novo array. Além disso, o nome do segundo array cria um alias do primeiro para que possa ser acessado com o mesmo nome do anterior e o primeiro array seja descartado
Esta resposta parece ser a que você está procurando Por que não consigo fazer isso: dynamic x = new ExpandoObject {Foo = 12, Bar = "doze"}
Leia sobre ExpandoObject
aqui https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx
E o dynamic
tipo aqui https://msdn.microsoft.com/en-GB/library/dd264736.aspx