Les collections en C#

Les collections sont des classes spécialisées pour le stockage et la récupération de données. Ces classes prennent en charge les piles, les files, les listes et les tables de hachage. La plupart des classes de collection implémentent les mêmes interfaces.
 
 
Les classes de collection servent à diverses tâches, telles que l’allocation dynamique de mémoire et l’accès à une liste d’éléments à partir d’un index, etc. Ces classes créent des collections d’objets de la classe Object, qui est la classe de base de tous les types de données en C#.

.NET prend en charge deux types de collections, les collections génériques et les collections non génériques. la figure suivant représente la correspondance entre ces classes.
 


 

1. Les collections non génériques

Dans les collections non génériques, chaque élément peut représenter une valeur d’un type différent. La taille d’une collection n’est pas fixe, et les éléments peuvent être ajoutés ou supprimés au moment de l’exécution. Avant d’utiliser les collections non génériques, vous devez inclure l’espace de nom suivant :

using System.Collections;

 

1.1. ArrayList

La classe ArrayList est une collection qui peut être utilisée pour tout type ou objet. Arraylist est une classe similaire à un tableau, mais elle peut être utilisée pour stocker des valeurs de différents types.
Un Arraylist n’a pas de taille spécifique. N’importe quel nombre d’éléments peut être stocké.

ArrayList numbers = new ArrayList();  

numbers.Add(1);       //int
numbers.Add(1.9803);  //float
numbers.Add("one");   //string
numbers.Add('o');     //char
      
foreach (object nbr in numbers)  
{  
	Console.Write("{0} ", nbr);
}

La sortie :

1 1.9803 one o
Trier une ArrayList en C#Trier une ArrayList en C#La méthode Sort trie tous les éléments dans une ArrayList à l’aide de l’algorithme QuickSort. L’exemple suivant trie les éléments dans ArrayList et affiche à…Lire plus Compter le nombre des éléments dans ArrayList en C#Compter le nombre des éléments dans ArrayList en C#ArrayList représente une collection ordonnée d’un objet pouvant être indexé individuellement, est une alternative à un tableau. Il permet également l’allocation dynamique de la mémoire,…Lire plus  

1.2. HashTable

HashTable est similaire à arraylist, mais représente les éléments sous forme de clé et valeur.

Hashtable languages = new Hashtable();  

languages.Add(1, "Java");  
languages.Add(2, "C#");  
languages.Add(3, "Python");  
languages.Add(4, "C++");  
  
foreach (DictionaryEntry language in languages)  
{  
	Console.WriteLine("Clé: {0}, Valeur: {1}", language.Key, language.Value);   
}

La sortie :

Clé: 4, Valeur: C++
Clé: 3, Valeur: Python
Clé: 2, Valeur: C#
Clé: 1, Valeur: Java

 

1.3. SortedList

La classe SortedList est une classe qui combine l’arraylist et hashtable, ainsi représente les données sous forme de paire clé/valeur, et organise tous les éléments dans un ordre trié.

SortedList languages = new SortedList();  

languages.Add(1, "Java");  
languages.Add(2, "C#");  
languages.Add(3, "Python");  
languages.Add(4, "C++");  
  
foreach (DictionaryEntry language in languages)  
{  
	Console.WriteLine("Clé: {0}, Valeur: {1}", language.Key, language.Value);   
}

La sortie :

Clé: 1, Valeur: Java
Clé: 2, Valeur: C#
Clé: 3, Valeur: Python
Clé: 4, Valeur: C++

 

1.3. Stack

Il représente une collection d’objets LIFO(Last In First Out). Lorsque vous ajoutez un élément dans la liste, cela s’appelle PUSH ou Empiler et lorsque vous le supprimez, cela s’appelle POP ou Dépiler.

Stack languages = new Stack();  

languages.Push("Java");  
languages.Push("C#");  
languages.Push("Python");  
languages.Push("C++");  

foreach (object o in languages)  
{
	Console.WriteLine(o);
}

La sortie :

C++
Python
C#
Java

 

1.4. Queue

Il représente une collection d’objets FIFO(First In First Out). Lorsque vous ajoutez un élément à la liste, cela s’appelle « Enqueue » ou « Enfiler » et lorsque vous supprimez un élément, cela s’appelle « Deque » ou « Défiler ».

Queue languages = new Queue(); 

languages.Enqueue("Java");  
languages.Enqueue("C#");  
languages.Enqueue("Python");  
languages.Enqueue("C++");  

foreach (object o in languages)  
{
	Console.WriteLine(o);
}

La sortie :

C++
Python
C#
Java

 
 

2. Les collections génériques

Les collections génériques fonctionnent sur un type spécifique, tandis que les collections non génériques fonctionnent sur le type « Object ». Avant d’utiliser les collections non génériques, vous devez inclure l’espace de nom suivant : using System.Collections.Generic;
 

2.1. List

Il s’agit d’un tableau dynamique offrant des fonctionnalités similaires à celles de la classe non générique ArrayList.

List<int> numbers = new List<int>();

numbers.Add(10);  
numbers.Add(20);  
numbers.Add(30);  
numbers.Add(40);  

foreach (int nbr in numbers)  
{
	Console.WriteLine(nbr); 
}

La sortie :

10
20
30
40
Différence entre ArrayList et List en C#Différence entre ArrayList et List en C#ArrayList est une classe de collection non générique et se trouve dans l’espace de noms System.Collection, tandis que List est une classe générique et se…Lire plus
2.1. Dictonary

Il stocke les données sous forme de paires clé-valeur et fournit des fonctionnalités similaires à celles de la classe non générique Hashtable.

Dictionary<int, string> languages = new Dictionary<int, string>(); 
    
languages.Add(1, "Java");  
languages.Add(2, "C#");  
languages.Add(3, "Python");  
languages.Add(4, "C++");  

foreach (KeyValuePair<int, string> language in languages)  
{  
	Console.WriteLine("Clé: {0}, Valeur: {1}", language.Key, language.Value);  
}

La sortie :

Clé: 1, Valeur: Java
Clé: 2, Valeur: C#
Clé: 3, Valeur: Python
Clé: 4, Valeur: C++
Trier un dictionnaire en C#Trier un dictionnaire en C#Dans ce tutoriel nous allons découvrir comment trier un dictionnaire en C#. Le code ci-dessous crée d’abord un dictionnaire, puis utilise la méthode OrderBy pour…Lire plus  

2.1. SortedList

Il s’agit d’une liste triée, stocke les données sous forme de paires clé-valeur et fournit des fonctionnalités similaires à celles de la classe non générique SortedList.

SortedList<int, string>  langages = new SortedList<int, string> (); 

langages.Add(1, "Java");  
langages.Add(2, "C#");  
langages.Add(3, "Python");  
langages.Add(4, "C++");  

foreach (KeyValuePair<int, string> language in langages)  
{  
	Console.WriteLine("Clé: {0}, Valeur: {1}", language.Key, language.Value);  
}

La sortie :

Clé: 1, Valeur: Java
Clé: 2, Valeur: C#
Clé: 3, Valeur: Python
Clé: 4, Valeur: C++

 

2.1. Stack

Il s’agit d’une liste LIFO(Last In First Out) et et fournit des fonctionnalités similaires à celles de la classe non générique Stack.

Stack<string> languages = new Stack<string>();  

languages.Push("Java");  
languages.Push("C#");  
languages.Push("Python");  
languages.Push("C++");  

foreach (string language in languages)  
{
	Console.WriteLine(language);
}

La sortie :

C++
Python
C#
Java

 

2.1. Queue

Il s’agit d’une liste FIFO(First In First Out) et et fournit des fonctionnalités similaires à celles de la classe non générique Queue.

Queue<string> languages = new Queue<string>();  

languages.Enqueue("Java");  
languages.Enqueue("C#");  
languages.Enqueue("Python");  
languages.Enqueue("C++"); 

foreach (string language in languages)  
{  
   Console.WriteLine(language);
}

La sortie :

C++
Python
C#
Java
qcm-csharpQCM C# – Framework .NET – Partie 1QCM sur C# avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus
Partagez cet article

2 réflexions sur “Les collections en C#

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *