Existe-t-il une méthode pour créer un tableau dynamique en C #?
Existe-t-il une méthode pour créer un tableau dynamique en C #?
Réponses:
Jetez un œil aux listes génériques .
dynamic[] posée à propos de msdn.microsoft.com/en-GB/library/dd264736.aspx (tableau de types dynamiques) ou ExpandoObject msdn.microsoft.com/ fr-us / library /… Je pourrais -1 la réponse pour ne pas les mentionner
Développement de la réponse de Chris et Migol avec un exemple de code.
Utilisation d'un tableau
Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");
Utilisation d'une liste générique. Sous le capot, la classe List <T> utilise un tableau pour le stockage, mais le fait d'une manière qui lui permet de se développer efficacement.
List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];
Parfois, les tableaux simples sont préférés aux listes génériques, car ils sont plus pratiques (Meilleures performances pour des calculs coûteux - Applications d'algèbre numérique par exemple, ou pour échanger des données avec des logiciels de statistiques comme R ou Matlab)
Dans ce cas, vous pouvez utiliser la méthode ToArray () après avoir lancé dynamiquement votre liste
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");
string[] array = list.ToArray();
Bien sûr, cela n'a de sens que si la taille du tableau n'est jamais connue ni fixée ex ante . si vous connaissez déjà la taille de votre tableau à un moment donné du programme, il est préférable de l'initier comme un tableau de longueur fixe. (Si vous récupérez des données à partir d'un ResultSet par exemple, vous pouvez compter sa taille et lancer un tableau de cette taille, de manière dynamique)
Exemple de tableau dynamique:
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();
Utilisez la liste de tableaux qui est en fait un tableau d'implémentation. Il prend initialement un tableau de taille 4 et lorsqu'il est plein, un nouveau tableau est créé avec sa double taille et les données du premier tableau sont copiées dans le deuxième tableau, maintenant le nouvel élément est inséré dans un nouveau tableau. De plus, le nom du second tableau crée un alias de first afin qu'il soit accessible sous le même nom que le précédent et que le premier tableau soit supprimé
Cette réponse semble être la réponse que vous recherchez Pourquoi ne puis-je pas faire ceci: dynamic x = new ExpandoObject {Foo = 12, Bar = "douze"}
Découvrez ExpandoObjectici https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx
Et le dynamictype ici https://msdn.microsoft.com/en-GB/library/dd264736.aspx