CollectionsUtil Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée des collections qui ignorent le cas dans les chaînes.
public ref class CollectionsUtil
public class CollectionsUtil
type CollectionsUtil = class
Public Class CollectionsUtil
- Héritage
-
CollectionsUtil
Exemples
L’exemple suivant utilise deux collections, une table de hachage et une liste triée, pour contenir des valeurs de population pour un groupe de villes. Les valeurs sont récupérées à partir des collections à l’aide des noms de ville en tant que clés. Les noms de ville sont en cas mixte pour montrer leur utilisation en tant que clés ne respectant pas la casse.
using System;
using System.Collections;
using System.Collections.Specialized;
class TestCollectionsUtils
{
public static void Main()
{
Hashtable population1 = CollectionsUtil.CreateCaseInsensitiveHashtable();
population1["Trapperville"] = 15;
population1["Doggerton"] = 230;
population1["New Hollow"] = 1234;
population1["McHenry"] = 185;
// Select cities from the table using mixed case.
Console.WriteLine("Case insensitive hashtable results:\n");
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population1["trapperville"]);
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population1["DOGGERTON"]);
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population1["New hoLLow"]);
Console.WriteLine("{0}'s population is: {1}", "McHenry", population1["MchenrY"]);
SortedList population2 = CollectionsUtil.CreateCaseInsensitiveSortedList();
foreach (string city in population1.Keys)
{
population2.Add(city, population1[city]);
}
// Select cities from the sorted list using mixed case.
Console.WriteLine("\nCase insensitive sorted list results:\n");
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population2["trapPeRVille"]);
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population2["dOGGeRtON"]);
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population2["nEW hOLLOW"]);
Console.WriteLine("{0}'s population is: {1}", "McHenry", population2["MchEnrY"]);
}
}
// This program displays the following output to the console
//
// Case insensitive hashtable results:
//
// Trapperville's population is: 15
// Doggerton's population is: 230
// New Hollow's population is: 1234
// McHenry's population is: 185
//
// Case insensitive sorted list results:
//
// Trapperville's population is: 15
// Doggerton's population is: 230
// New Hollow's population is: 1234
// McHenry's population is: 185
Imports System.Collections
Imports System.Collections.Specialized
Class TestCollectionsUtils
Public Shared Sub Main()
Dim population1 As Hashtable = CollectionsUtil.CreateCaseInsensitiveHashtable()
population1("Trapperville") = 15
population1("Doggerton") = 230
population1("New Hollow") = 1234
population1("McHenry") = 185
' Select cities from the table using mixed case.
Console.WriteLine("Case insensitive hashtable results:" + Environment.NewLine)
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population1("trapperville"))
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population1("DOGGERTON"))
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population1("New hoLLow"))
Console.WriteLine("{0}'s population is: {1}", "McHenry", population1("MchenrY"))
Dim population2 As SortedList = CollectionsUtil.CreateCaseInsensitiveSortedList()
For Each city As String In population1.Keys
population2.Add(city, population1(city))
Next city
' Select cities from the sorted list using mixed case.
Console.WriteLine(Environment.NewLine + "Case insensitive sorted list results:" + Environment.NewLine)
Console.WriteLine("{0}'s population is: {1}", "Trapperville", population2("trapPeRVille"))
Console.WriteLine("{0}'s population is: {1}", "Doggerton", population2("dOGGeRtON"))
Console.WriteLine("{0}'s population is: {1}", "New Hollow", population2("nEW hOLLOW"))
Console.WriteLine("{0}'s population is: {1}", "McHenry", population2("MchEnrY"))
End Sub
End Class
' This program displays the following output to the console
'
' Case insensitive hashtable results:
'
' Trapperville's population is: 15
' Doggerton's population is: 230
' New Hollow's population is: 1234
' McHenry's population is: 185
'
' Case insensitive sorted list results:
'
' Trapperville's population is: 15
' Doggerton's population is: 230
' New Hollow's population is: 1234
' McHenry's population is: 185
Remarques
Ces méthodes génèrent une instance non sensible à la casse de la collection à l’aide d’implémentations respectant la casse du fournisseur de code de hachage et du comparateur. L’instance résultante peut être utilisée comme n’importe quelle autre instance de cette classe, bien qu’elle puisse se comporter différemment.
Par exemple, supposons que deux objets avec les clés « hello » et « HELLO » doivent être ajoutés à une table de hachage. Une table de hachage sensible à la casse créerait deux entrées différentes ; alors qu’une table de hachage ne respectant pas la casse lève une exception lors de l’ajout du deuxième objet.
Constructeurs
| Nom | Description |
|---|---|
| CollectionsUtil() |
Initialise une nouvelle instance de la classe CollectionsUtil. |
Méthodes
| Nom | Description |
|---|---|
| CreateCaseInsensitiveHashtable() |
Crée une instance sans respect de la casse de la Hashtable classe avec la capacité initiale par défaut. |
| CreateCaseInsensitiveHashtable(IDictionary) |
Copie les entrées du dictionnaire spécifié dans une nouvelle instance ne respectant pas la casse de la Hashtable classe avec la même capacité initiale que le nombre d’entrées copiées. |
| CreateCaseInsensitiveHashtable(Int32) |
Crée une instance sans respect de la casse de la Hashtable classe avec la capacité initiale spécifiée. |
| CreateCaseInsensitiveSortedList() |
Crée une instance de la SortedList classe qui ignore la casse des chaînes. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
S’applique à
Cohérence de thread
Un Hashtable peut prendre en charge un enregistreur et plusieurs lecteurs simultanément. Pour prendre en charge plusieurs enregistreurs, toutes les opérations doivent être effectuées via le wrapper retourné par la Synchronized(Hashtable) méthode.
Un SortedList peut prendre en charge plusieurs lecteurs simultanément, tant que la collection n’est pas modifiée. Pour garantir la sécurité du thread, SortedListtoutes les opérations doivent être effectuées via le wrapper retourné par la Synchronized(SortedList) méthode.
L’énumération par le biais d’une collection n’est intrinsèquement pas une procédure sécurisée de thread. Même lorsqu’une collection est synchronisée, d’autres threads peuvent toujours modifier la collection, ce qui provoque la levée d’une exception par l’énumérateur. Pour garantir la sécurité des threads pendant l’énumération, vous pouvez verrouiller la collection pendant toute l’énumération ou intercepter les exceptions résultant des modifications apportées par d’autres threads.