Esiste un metodo per creare un array dinamico in C #?
Esiste un metodo per creare un array dinamico in C #?
Risposte:
Dai un'occhiata agli elenchi generici .
dynamic[]
msdn.microsoft.com/en-GB/library/dd264736.aspx (array di tipi dinamici) o ExpandoObject
msdn.microsoft.com/ it-us / library /… Potrei -1 la risposta per non menzionarli
Espandendo la risposta di Chris e Migol con un esempio di codice.
Utilizzando un array
Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");
Utilizzando un elenco generico. Dietro le quinte, la classe List <T> utilizza un array per l'archiviazione, ma lo fa in un modo che gli consente di crescere in modo efficiente.
List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];
A volte gli array semplici sono preferiti agli elenchi generici, poiché sono più convenienti (prestazioni migliori per calcoli costosi, ad esempio applicazioni di algebra numeriche o per lo scambio di dati con software di statistica come R o Matlab)
In questo caso puoi usare il metodo ToArray () dopo aver avviato dinamicamente il tuo List
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");
string[] array = list.ToArray();
Ovviamente, questo ha senso solo se la dimensione dell'array non è mai nota né fissata ex ante . se conosci già la dimensione del tuo array ad un certo punto del programma è meglio iniziarlo come array a lunghezza fissa. (Se recuperi i dati da un ResultSet, ad esempio, puoi contare la sua dimensione e avviare un array di quella dimensione, dinamicamente)
Esempio di array dinamico:
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();
Usa l' elenco degli array che in realtà implementa l'array. Richiede inizialmente un array di dimensione 4 e quando è pieno, viene creato un nuovo array con la sua doppia dimensione ei dati del primo array vengono copiati nel secondo array, ora il nuovo elemento viene inserito nel nuovo array. Anche il nome del secondo array crea un alias del primo in modo che sia possibile accedervi con lo stesso nome del precedente e il primo array venga eliminato
Questa risposta sembra essere la risposta che stai cercando Perché non posso farlo: dynamic x = new ExpandoObject {Foo = 12, Bar = "dodici"}
Leggi ExpandoObject
qui https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx
E il dynamic
tipo qui https://msdn.microsoft.com/en-GB/library/dd264736.aspx