1. Interface ICollection
Array est le type de collection le plus basique défini par le framework .net En plus des tableaux, le framework .net définit également de nombreux types de collections. Ouvrez msdn et vous pouvez voir que toutes les collections se trouvent sous l'espace de noms System.Collections :
Classe de collection :
ArrayList : implémente l'interface IList en utilisant un tableau dont la taille peut être augmentée dynamiquement à la demande.
BitArray : Un tableau compressé qui gère la valeur. La valeur est représentée comme une valeur booléenne : true signifie que le bit est activé (1), false signifie que le bit est désactivé (0).
CaseInsensitiveComparer : compare deux objets pour vérifier leur égalité, en ignorant la casse des chaînes lors de la comparaison.
CollectionBase : fournit une classe de base abstraite pour les collections fortement typées.
Comparateur : compare deux objets pour vérifier leur égalité, où la comparaison de chaînes est sensible à la casse.
DictionaryBase : fournit une classe de base abstraite pour les collections fortement typées de paires clé/valeur
Hashtable : représente une collection de paires clé/valeur organisées en fonction du code de hachage de la clé.
Queue : représente une collection d'objets premier entré, premier sorti.
ReadOnlyCollectionBase : fournit une classe de base abstraite pour les collections en lecture seule non génériques fortement typées.
SortedList : représente une collection de paires clé/valeur triées par clé et accessibles par clé et index.
Pile : représente une simple collection d'objets non génériques, dernier entré, premier sorti.
Interface :
ICollection : Définit les méthodes de taille, d'énumération et de synchronisation de toutes les collections non génériques.
IComparer : expose une méthode pour comparer deux objets.
IDictionary : représente une collection non universelle de paires clé/valeur.
IDictionaryEnumerator : Énumérer les éléments d'un dictionnaire non générique.
IEnumerable : expose un énumérateur qui prend en charge une itération simple sur une collection non générique.
IEnumerator : prend en charge les itérations simples sur des collections non génériques.
IEqualityComparer : définit des méthodes pour prendre en charge la comparaison d’égalité des objets.
IList : représente une collection non générique d'objets accessibles individuellement par index.
Regardez principalement l'interface ICollection et l'interface IEnumerable.
ICollection :
Cette interface définit deux spécifications principales pour sa classe d'implémentation :
(1) Le nombre d'éléments de la collection, c'est-à-dire l'attribut Count
(2) Itération (méthode GetEnumerator).
La méthode GetEnumertor est héritée de l'interface parent d'ICollection, IEumerable. L'interface ICollection définit une collection qui stocke et obtient des références à des objets de type objet, de sorte que les références à divers objets de type référence ou objets de type valeur puissent être stockées et obtenues.
Interface IEnumerable :
Cette interface est l'interface parent d'ICollection. Cette interface fournit des fonctionnalités itérables pour les classes qu'elle implémente. L'interface IEumerable n'a qu'une seule méthode GetEnumerator, qui renvoie un énumérateur qui parcourt la collection
2. Itération
L'itération, également appelée itérateur, est le mode d'itération dans le modèle de conception. La signification est : fournir une méthode pour. accès séquentiel Agrége les éléments d'un objet sans exposer la représentation interne de l'objet. Étant donné que les méthodes de stockage des collections sont différentes, List est un stockage continu et la liste chaînée utilise le stockage de référence entre les objets... Cela n'est alors pas pratique lorsque vous devez parcourir des collections et vous avez besoin d'une méthode capable de parcourir toutes les différentes collections. itérateurs.
L'itérateur traite la classe combinée comme un conteneur de capacité infinie et les règles de stockage sont linéaires. Autrement dit, chaque élément, à l'exception du premier et du dernier, a un prédécesseur et un successeur directs, et le conteneur possède un indicateur qui peut pointer vers n'importe quelle unité de stockage dans le conteneur. Il existe deux manières : l’itération unidirectionnelle et l’itération bidirectionnelle.
(1) Itération unidirectionnelle
L'itération unidirectionnelle fait référence à l'itération avant uniquement. La marque unitaire de l'ensemble ne peut reculer qu'une par une à partir d'un élément de l'ensemble. Par conséquent, l'itération définit trois opérations. :
a. Élément actuel
b. Aller à l'élément suivant et déterminer s'il s'agit de la fin
c. Revenir à l'élément initial
(2), Mode itération bidirectionnel
Pour le mode d'itération bidirectionnel, la marque d'unité de l'ensemble peut reculer une à une à partir d'un élément de l'ensemble, ou elle peut avancer une à une à partir d'un élément de l'ensemble. Il y a donc quatre opérations :
a, élément actuel
b, passer à l'élément suivant et juger si c'est la fin
c, revenir à l'élément précédent et juger si c'est le début de l'ensemble
d, revenir à la position initiale
.net framework définit une spécification d'itération unidirectionnelle à l'aide de l'interface IEumerable. L'interface ICollection hérite de l'interface IEumerable. La méthode GetEnumerator définie par cette interface peut obtenir un objet itératif de l'objet de classe de collection actuelle, c'est-à-dire un objet qui implémente l'interface IEumerable.
Toute classe qui implémente l'interface IEnumerable peut être parcourue de manière itérative à l'aide d'une boucle foreach.
L'interface IEnumerable définit un itérateur qui peut parcourir les références d'objet de type objet, et l'interface IEnumerable définit une méthode pour obtenir cet objet itérateur.
3. Collection générique
Interface ICollection
L'interface ICollection
Depuis que le type de stockage a été déterminé, ICollection
Interface IEnumerable
L'interface ICollection
Ce qui précède est la compilation des connaissances de base en C# : Connaissances de base (15) ICollection, itération et génériques Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !