Maison développement back-end Tutoriel C#.Net Explication détaillée de la différence entre Array et ArrayList en C#

Explication détaillée de la différence entre Array et ArrayList en C#

Mar 28, 2017 am 11:44 AM

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];
Copier après la connexion

ou

 type[]  typename=new type[]{ };
Copier après la connexion

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];
Copier après la connexion

(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);
      }
Copier après la connexion

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(); //方法二
Copier après la connexion

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.


Par exemple :

int[] array = new array[3];
 或 int[] array = {1,2,3};
 或 ArrayList myList = new ArrayList();
Copier après la connexion
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.

Les objets isomorphes font référence à des objets du même type. Si un tableau est déclaré comme int[], il ne peut stocker que des données entières, et string[] ne peut stocker que des

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


L'initialisation de l'objet Array

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).

6. [Quelques fonctionnalités d'ArrayList]

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);
Copier après la connexion
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

Sortie :
 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();
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Active Directory avec C# Active Directory avec C# Sep 03, 2024 pm 03:33 PM

Guide d'Active Directory avec C#. Nous discutons ici de l'introduction et du fonctionnement d'Active Directory en C# ainsi que de la syntaxe et de l'exemple.

Générateur de nombres aléatoires en C# Générateur de nombres aléatoires en C# Sep 03, 2024 pm 03:34 PM

Guide du générateur de nombres aléatoires en C#. Nous discutons ici du fonctionnement du générateur de nombres aléatoires, du concept de nombres pseudo-aléatoires et sécurisés.

Modificateurs d'accès en C# Modificateurs d'accès en C# Sep 03, 2024 pm 03:24 PM

Guide des modificateurs d'accès en C#. Nous avons discuté de l'introduction Types de modificateurs d'accès en C# ainsi que d'exemples et de résultats.

Vue Grille de données C# Vue Grille de données C# Sep 03, 2024 pm 03:32 PM

Guide de la vue Grille de données C#. Nous discutons ici des exemples de la façon dont une vue de grille de données peut être chargée et exportée à partir de la base de données SQL ou d'un fichier Excel.

Sérialisation C# Sérialisation C# Sep 03, 2024 pm 03:30 PM

Guide de sérialisation C#. Nous discutons ici de l'introduction, des étapes de l'objet de sérialisation C#, du fonctionnement et de l'exemple respectivement.

Modèles en C# Modèles en C# Sep 03, 2024 pm 03:33 PM

Guide des modèles en C#. Nous discutons ici de l'introduction et des 3 principaux types de modèles en C# ainsi que de ses exemples et de l'implémentation du code.

Nombres premiers en C# Nombres premiers en C# Sep 03, 2024 pm 03:35 PM

Guide des nombres premiers en C#. Nous discutons ici de l'introduction et des exemples de nombres premiers en c# ainsi que de l'implémentation du code.

Factorielle en C# Factorielle en C# Sep 03, 2024 pm 03:34 PM

Guide de Factorial en C#. Nous discutons ici de l'introduction de factorial en c# ainsi que de différents exemples et de l'implémentation du code.

See all articles