Maison > Article > développement back-end > Explication détaillée de la différence entre Array et ArrayList en C#
Cet article présente principalement l'explication détaillée et les différences entre Array et ArrayList en C# Les amis dans le besoin peuvent se référer à
C# Explication détaillée et. différence entre Array et ArrayList
1. Utilisation de Array
type[] typename=new type[size];
ou
type[] typename=new type[]{ };
Type de tableauVariables doit être instancié en même temps que la déclaration (s'il est initialisé, au moins la taille du tableau doit être initialisé)
Habituellement, nous int[], string[]... En fait Déclarez un tableau tableau
Par exemple :
string [] srt=new string[]{"a","b"}; int[] a=new int[2]; string [] srt=new string[3];
(1):typedata type ne peut pas manquer et doit être ; unifié, mais pas C'est comme int[] a=new Array[];
(2) : La taille du tableau ne peut pas manquer, sinon C# pensera que c'est une erreur car le tableau est un fixe -length memory;
(3) : Le côté droit est un crochet [] au lieu de ()
Remarque : array array ne fournit pas les méthodes add, clear, addRange.., mais définit ou obtient directement la valeur
Par exemple : a[0] = 0; a[1] = 1;
2. Utilisation de C# ArrayList :
var arrayList = new ArrayList(); arrayList.Add(1); arrayList.Add(2); arrayList.Add(50.0); //在.net 4.0 支持。具体为什么还没有研究 foreach (var array in arrayList) { Console.WriteLine(array); }
3. La conversion entre ArrayList et Array
var arrayList = new List<int>(); arrayList.Add(1); arrayList.Add(2); arrayList.Add(50); //ArrayList 数组中的值拷贝到Array中去 int[] array1=new int[arrayList.Count]; arrayList.CopyTo(array1); //方法一 int[] array2 = arrayList.ToArray(); //方法二
4. 🎜>
# 1. Les variables de type tableau doivent être instanciées en même temps qu'elles sont déclarées (au moins la taille du tableau doit être initialisée), tandis qu'ArrayList peut simplement être déclaré en premier.int[] array = new array[3]; 或 int[] array = {1,2,3}; 或 ArrayList myList = new ArrayList();Ceux-ci sont tous légaux, mais utiliser directement le tableau int[] ; #2. Array ne peut stocker que des
objets homogènes, tandis qu'ArrayList peut stocker des objets hétérogènes.
données de caractères , sauf les tableaux déclarés comme object[].
ArrayList peut stocker différents types de données (car il stocke des objets Objet encadrés. En fait, ArrayList utilise "object[] _items;" en interne) des champs privés pour encapsuler des objets)
#3 Méthode de stockage dans la paire gérée CLR
Le tableau est toujours stocké en continu, tandis qu'ArrayList n'est pas nécessairement stocké en continu.
#4 Taille d'initialisation
ne doit être que d'une taille spécifiée, et la taille du tableau après création est fixe,
La taille d'ArrayList peut être spécifiée dynamiquement, et sa taille peut être spécifiée lors de l'initialisation ou non spécifiée, ce qui signifie que l'espace de l'objet peut être augmenté arbitrairement.
#5 Array ne peut pas ajouter et supprimer des éléments à volonté, tandis qu'ArrayList peut insérer et supprimer des éléments à n'importe quelle position.
5. [Similarités entre Array et ArrayList]#1 Les deux ont des index, c'est-à-dire que n'importe quel élément peut être directement obtenu et modifié via l'index.
#2 Les objets qu'ils créent sont placés dans le tas géré.#3 peuvent tous s'énumérer (car ils implémentent tous l'interface IEnumerable).
Lorsque la taille est de 2, la "capacité actuelle" dans le résultat de sortie est de 2,
var arrayList = new List<int>(2); Console.WriteLine(arrayList.Capacity); int size = 2; for (int i = 0; i < size; i++) { arrayList.Add(i); } Console.WriteLine("compressed capacity:"+arrayList.Capacity);Quand Lorsque la taille est de 3 ou 4, la « capacité actuelle » est de 4,
Lorsque la taille est de 5 à 8, la « capacité actuelle » est de 8,
Lorsque la taille est de 9 à 16, la « capacité actuelle » est de 16,
Une conclusion peut être tirée par des expériences, c'est-à-dire que chaque fois que le nombre réel d'objets dans ArrayList (ArrayList.Count) dépasse son propre seuil de capacité, le seuil doublera automatiquement
ArrayList myList = new ArrayList(5); for (int i = 0; i < 3; i++) { myList.Add(i); } Console.WriteLine("actual capacity:" + myList.Capacity); myList.TrimToSize(); Console.WriteLine("compressed capacity:" + myList.Capacity); Console.ReadLine();
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!