Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

NameObjectCollectionBase classe

 

Date de publication : novembre 2016

Fournit la classe de base abstract pour une collection de clés de type String et de valeurs Object associées accessibles soit via la clé, soit via l'index.

Espace de noms:   System.Collections.Specialized
Assembly:  System (dans System.dll)


[SerializableAttribute]
public abstract class NameObjectCollectionBase : ICollection, 
	IEnumerable, ISerializable, IDeserializationCallback

NomDescription
System_CAPS_protmethodNameObjectCollectionBase()

Initialise une nouvelle instance de la classe NameObjectCollectionBase qui est vide.

System_CAPS_protmethodNameObjectCollectionBase(IEqualityComparer)

Initialise une nouvelle instance de la classe NameObjectCollectionBase qui est vide, possède la capacité initiale par défaut et utilise l'objet IEqualityComparer spécifié.

System_CAPS_protmethodNameObjectCollectionBase(IHashCodeProvider, IComparer)

Obsolète. Initialise une nouvelle instance de la classe NameObjectCollectionBase qui est vide, possède la capacité initiale par défaut et utilise le fournisseur de code de hachage spécifié, ainsi que le comparateur spécifié.

System_CAPS_protmethodNameObjectCollectionBase(Int32)

Initialise une nouvelle instance de la classe NameObjectCollectionBase qui est vide, possède la capacité initiale spécifiée et utilise le fournisseur de code de hachage et le comparateur par défaut.

System_CAPS_protmethodNameObjectCollectionBase(Int32, IEqualityComparer)

Initialise une nouvelle instance de la classe NameObjectCollectionBase qui est vide, possède la capacité initiale spécifiée et utilise l'objet IEqualityComparer spécifié.

System_CAPS_protmethodNameObjectCollectionBase(Int32, IHashCodeProvider, IComparer)

Obsolète. Initialise une nouvelle instance de la classe NameObjectCollectionBase qui est vide, possède la capacité initiale spécifiée et utilise le fournisseur de code de hachage spécifié, ainsi que le comparateur spécifié.

System_CAPS_protmethodNameObjectCollectionBase(SerializationInfo, StreamingContext)

Initialise une nouvelle instance de la classe NameObjectCollectionBase qui est sérialisable et utilise les éléments System.Runtime.Serialization.SerializationInfo et System.Runtime.Serialization.StreamingContext spécifiés.

NomDescription
System_CAPS_pubpropertyCount

Obtient le nombre de paires clé/valeur contenues dans l'instance du NameObjectCollectionBase.

System_CAPS_protpropertyIsReadOnly

Obtient ou définit une valeur indiquant si l'instance du NameObjectCollectionBase est en lecture seule.

System_CAPS_pubpropertyKeys

Obtient une instance du NameObjectCollectionBase.KeysCollection qui contient toutes les clés dans l'instance du NameObjectCollectionBase.

NomDescription
System_CAPS_protmethodBaseAdd(String, Object)

Ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseClear()

Supprime toutes les entrées de l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseGet(Int32)

Obtient la valeur de l'entrée à l'index spécifié de l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseGet(String)

Obtient la valeur de la première entrée ayant la clé spécifiée dans l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseGetAllKeys()

Retourne un tableau de type String qui contient toutes les clés dans l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseGetAllValues()

Retourne un tableau d'éléments Object qui contient toutes les valeurs présentes dans l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseGetAllValues(Type)

Retourne un tableau du type spécifié qui contient toutes les valeurs présentes dans l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseGetKey(Int32)

Obtient la clé de l'entrée à l'index spécifié de l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseHasKeys()

Obtient une valeur indiquant si l'instance du NameObjectCollectionBase contient des entrées dont les clés ne sont pas null.

System_CAPS_protmethodBaseRemove(String)

Supprime les entrées contenant la clé spécifiée dans l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseRemoveAt(Int32)

Supprime les entrées à l'index spécifié de l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseSet(Int32, Object)

Définit la valeur de l'entrée à l'index spécifié de l'instance du NameObjectCollectionBase.

System_CAPS_protmethodBaseSet(String, Object)

Définit la valeur de la première entrée contenant la clé spécifiée dans l'instance du NameObjectCollectionBase, si elle existe ; sinon, ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance du NameObjectCollectionBase.

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodGetEnumerator()

Retourne un énumérateur qui itère au sein de NameObjectCollectionBase.

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

Implémente l'interface ISerializable et retourne les données nécessaires pour sérialiser l'instance NameObjectCollectionBase.

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_pubmethodOnDeserialization(Object)

Implémente l'interface ISerializable et déclenche l'événement de désérialisation une fois la désérialisation terminée.

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

NomDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodICollection.CopyTo(Array, Int32)

Copie l'ensemble de l'objet NameObjectCollectionBase vers un objet Array unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.IsSynchronized

Obtient une valeur indiquant si l'accès à l'objet NameObjectCollectionBase est synchronisé (thread-safe).

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l'accès à l'objet NameObjectCollectionBase.

NomDescription
System_CAPS_pubmethodAsParallel()

Surchargé. Active la parallélisation d'une requête.(Défini par ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Surchargé. Convertit un IEnumerable à un IQueryable.(Défini par Queryable.)

System_CAPS_pubmethodCast<TResult>()

Convertit les éléments d’un IEnumerable au type spécifié.(Défini par Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtre les éléments d’un IEnumerable basé sur un type spécifié.(Défini par Enumerable.)

La structure sous-jacente pour cette classe est une table de hachage.

Chaque élément est une paire clé/valeur.

La capacité d’un NameObjectCollectionBase est le nombre d’éléments de la NameObjectCollectionBase peut contenir. Lorsque des éléments sont ajoutés à un NameObjectCollectionBase, la capacité augmente automatiquement par réallocation.

Le fournisseur de code de hachage fournit les codes de hachage des clés dans le NameObjectCollectionBase instance. Le fournisseur de code de hachage par défaut est le CaseInsensitiveHashCodeProvider.

Le comparateur détermine si deux clés sont égales. Le comparateur par défaut est le CaseInsensitiveComparer.

Dans .NET Framework version 1.0, cette classe utilise des comparaisons de chaînes dépendantes de la culture. Cependant, dans .NET Framework version 1.1 et ultérieure, cette classe utilise CultureInfo.InvariantCulture lors de la comparaison de chaînes. Pour plus d’informations sur la culture affecte les comparaisons et le tri, consultez la page Exécution d'opérations de chaînes indépendantes de la culture.

null est autorisée comme clé ou comme valeur.

System_CAPS_cautionAttention

Le BaseGet méthode ne fait pas la distinction entre null qui est retourné parce que la clé spécifiée est introuvable et null qui est retourné parce que la valeur associée à la clé est null.

L’exemple de code suivant montre comment implémenter et utiliser la NameObjectCollectionBase classe.

using System;
using System.Collections;
using System.Collections.Specialized;

public class MyCollection : NameObjectCollectionBase
{
   // Creates an empty collection.
   public MyCollection()  {
   }

   // Adds elements from an IDictionary into the new collection.
   public MyCollection( IDictionary d, Boolean bReadOnly )  {
      foreach ( DictionaryEntry de in d )  {
         this.BaseAdd( (String) de.Key, de.Value );
      }
      this.IsReadOnly = bReadOnly;
   }

   // Gets a key-and-value pair (DictionaryEntry) using an index.
   public DictionaryEntry this[ int index ]  {
      get  {
          return ( new DictionaryEntry( 
              this.BaseGetKey(index), this.BaseGet(index) ) );
      }
   }

   // Gets or sets the value associated with the specified key.
   public Object this[ String key ]  {
      get  {
         return( this.BaseGet( key ) );
      }
      set  {
         this.BaseSet( key, value );
      }
   }

   // Gets a String array that contains all the keys in the collection.
   public String[] AllKeys  {
      get  {
         return( this.BaseGetAllKeys() );
      }
   }

   // Gets an Object array that contains all the values in the collection.
   public Array AllValues  {
      get  {
         return( this.BaseGetAllValues() );
      }
   }

   // Gets a String array that contains all the values in the collection.
   public String[] AllStringValues  {
      get  {
         return( (String[]) this.BaseGetAllValues( typeof( string ) ));
      }
   }

   // Gets a value indicating if the collection contains keys that are not null.
   public Boolean HasKeys  {
      get  {
         return( this.BaseHasKeys() );
      }
   }

   // Adds an entry to the collection.
   public void Add( String key, Object value )  {
      this.BaseAdd( key, value );
   }

   // Removes an entry with the specified key from the collection.
   public void Remove( String key )  {
      this.BaseRemove( key );
   }

   // Removes an entry in the specified index from the collection.
   public void Remove( int index )  {
      this.BaseRemoveAt( index );
   }

   // Clears all the elements in the collection.
   public void Clear()  {
      this.BaseClear();
   }

}

public class SamplesNameObjectCollectionBase  {

   public static void Main()  {

      // Creates and initializes a new MyCollection that is read-only.
      IDictionary d = new ListDictionary();
      d.Add( "red", "apple" );
      d.Add( "yellow", "banana" );
      d.Add( "green", "pear" );
      MyCollection myROCol = new MyCollection( d, true );

      // Tries to add a new item.
      try  {
         myROCol.Add( "blue", "sky" );
      }
      catch ( NotSupportedException e )  {
         Console.WriteLine( e.ToString() );
      }

      // Displays the keys and values of the MyCollection.
      Console.WriteLine( "Read-Only Collection:" );
      PrintKeysAndValues( myROCol );


      // Creates and initializes an empty MyCollection that is writable.
      MyCollection myRWCol = new MyCollection();

      // Adds new items to the collection.
      myRWCol.Add( "purple", "grape" );
      myRWCol.Add( "orange", "tangerine" );
      myRWCol.Add( "black", "berries" );
      Console.WriteLine( "Writable Collection (after adding values):" );
      PrintKeysAndValues( myRWCol );

      // Changes the value of one element.
      myRWCol["orange"] = "grapefruit";
      Console.WriteLine( "Writable Collection (after changing one value):" );
      PrintKeysAndValues( myRWCol );

      // Removes one item from the collection.
      myRWCol.Remove( "black" );
      Console.WriteLine( "Writable Collection (after removing one value):" );
      PrintKeysAndValues( myRWCol );

      // Removes all elements from the collection.
      myRWCol.Clear();
      Console.WriteLine( "Writable Collection (after clearing the collection):" );
      PrintKeysAndValues( myRWCol );

   }

   // Prints the indexes, keys, and values.
   public static void PrintKeysAndValues( MyCollection myCol )  {
      for ( int i = 0; i < myCol.Count; i++ )  {
         Console.WriteLine( "[{0}] : {1}, {2}", i, myCol[i].Key, myCol[i].Value );
      }
   }

   // Prints the keys and values using AllKeys.
   public static void PrintKeysAndValues2( MyCollection myCol )  {
      foreach ( String s in myCol.AllKeys )  {
         Console.WriteLine( "{0}, {1}", s, myCol[s] );
      }
   }
}


/*
This code produces the following output.

System.NotSupportedException: Collection is read-only.
   at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd(String name, Object value)
   at SamplesNameObjectCollectionBase.Main()
Read-Only Collection:
[0] : red, apple
[1] : yellow, banana
[2] : green, pear
Writable Collection (after adding values):
[0] : purple, grape
[1] : orange, tangerine
[2] : black, berries
Writable Collection (after changing one value):
[0] : purple, grape
[1] : orange, grapefruit
[2] : black, berries
Writable Collection (after removing one value):
[0] : purple, grape
[1] : orange, grapefruit
Writable Collection (after clearing the collection):

*/

Plateforme Windows universelle
Disponible depuis 10
.NET Framework
Disponible depuis 1.1

Public static (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Cette implémentation ne fournit pas synchronisé wrapper (thread-safe) pour un NameObjectCollectionBase, mais les classes dérivées peuvent créer leurs propres versions synchronisées de la NameObjectCollectionBase à l’aide de la SyncRoot propriété.

L’énumération d’une collection n’est intrinsèquement pas une procédure thread-safe. Même lorsqu'une collection est synchronisée, les autres threads peuvent toujours la modifier, ce qui entraîne la levée d'une exception par l'énumérateur. Pour garantir la sécurité des threads au cours de l'énumération, vous pouvez verrouiller la collection pendant l'ensemble de l'énumération ou bien intercepter les exceptions résultant des modifications apportées par les autres threads.

Retour au début
Afficher: