Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

NameObjectCollectionBase, classe

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

System.Object
  System.Collections.Specialized.NameObjectCollectionBase
    En savoir plus...

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

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

Le type NameObjectCollectionBase expose les membres suivants.

  NomDescription
Méthode protégéePris en charge par XNA FrameworkNameObjectCollectionBase()Initialise une nouvelle instance de la classe NameObjectCollectionBase qui est vide.
Méthode protégéePris en charge par XNA FrameworkNameObjectCollectionBase(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é.
Méthode protégéePris en charge par XNA FrameworkNameObjectCollectionBase(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.
Méthode protégéePris en charge par XNA FrameworkNameObjectCollectionBase(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é.
Méthode protégéePris en charge par XNA FrameworkNameObjectCollectionBase(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é.
Méthode protégéeNameObjectCollectionBase(SerializationInfo, StreamingContext)Initialise une nouvelle instance de la classe NameObjectCollectionBase qui est sérialisable et utilise les System.Runtime.Serialization.SerializationInfo et System.Runtime.Serialization.StreamingContext spécifiés.
Méthode protégéePris en charge par XNA FrameworkNameObjectCollectionBase(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é.
Début

  NomDescription
Propriété publiquePris en charge par XNA FrameworkCountObtient le nombre de paires clé/valeur contenues dans l'instance de NameObjectCollectionBase.
Propriété protégéePris en charge par XNA FrameworkIsReadOnlyObtient ou définit une valeur indiquant si l'instance de NameObjectCollectionBase est en lecture seule.
Propriété publiquePris en charge par XNA FrameworkKeysObtient une instance du NameObjectCollectionBase.KeysCollection qui contient toutes les clés dans l'instance de NameObjectCollectionBase.
Début

  NomDescription
Méthode protégéePris en charge par XNA FrameworkBaseAddAjoute une entrée contenant la clé et la valeur spécifiées dans l'instance de NameObjectCollectionBase.
Méthode protégéePris en charge par XNA FrameworkBaseClearSupprime toutes les entrées de l'instance de NameObjectCollectionBase.
Méthode protégéePris en charge par XNA FrameworkBaseGet(Int32)Obtient la valeur de l'entrée à l'index spécifié de l'instance de NameObjectCollectionBase.
Méthode protégéePris en charge par XNA FrameworkBaseGet(String)Obtient la valeur de la première entrée contenant la clé spécifiée dans l'instance de NameObjectCollectionBase.
Méthode protégéePris en charge par XNA FrameworkBaseGetAllKeysRetourne un tableau String qui contient toutes les clés dans l'instance de NameObjectCollectionBase.
Méthode protégéeBaseGetAllValues()Retourne un tableau Object qui contient toutes les valeurs dans l'instance de NameObjectCollectionBase.
Méthode protégéeBaseGetAllValues(Type)Retourne un tableau du type spécifié qui contient toutes les valeurs dans l'instance de NameObjectCollectionBase.
Méthode protégéePris en charge par XNA FrameworkBaseGetKeyObtient la clé de l'entrée à l'index spécifié de l'instance de NameObjectCollectionBase.
Méthode protégéePris en charge par XNA FrameworkBaseHasKeysObtient une valeur indiquant si l'instance du NameObjectCollectionBase contient des entrées dont les clés ne sont pas null.
Méthode protégéePris en charge par XNA FrameworkBaseRemoveSupprime les entrées contenant la clé spécifiée dans l'instance de NameObjectCollectionBase.
Méthode protégéePris en charge par XNA FrameworkBaseRemoveAtSupprime les entrées à l'index spécifié de l'instance de NameObjectCollectionBase.
Méthode protégéePris en charge par XNA FrameworkBaseSet(Int32, Object)Définit la valeur de l'entrée à l'index spécifié de l'instance de NameObjectCollectionBase.
Méthode protégéePris en charge par XNA FrameworkBaseSet(String, Object)Définit la valeur de la première entrée contenant la clé spécifiée dans l'instance de NameObjectCollectionBase, le cas échéant ; sinon, ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance de NameObjectCollectionBase.
Méthode publiquePris en charge par XNA FrameworkEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéePris en charge par XNA FrameworkFinalize 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.)
Méthode publiquePris en charge par XNA FrameworkGetEnumeratorRetourne un énumérateur qui itère au sein de NameObjectCollectionBase.
Méthode publiquePris en charge par XNA FrameworkGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiqueGetObjectDataImplémente l'interface ISerializable et retourne les données nécessaires pour sérialiser l'instance de NameObjectCollectionBase.
Méthode publiquePris en charge par XNA FrameworkGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégéePris en charge par XNA FrameworkMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publiqueOnDeserializationImplémente l'interface ISerializable et déclenche l'événement de désérialisation une fois que la désérialisation est terminée.
Méthode publiquePris en charge par XNA FrameworkToStringRetourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Début

  NomDescription
Méthode d'extension publiqueAsParallelActive la parallélisation d'une requête. (Défini par ParallelEnumerable.)
Méthode d'extension publiqueAsQueryableConvertit un IEnumerable en IQueryable. (Défini par Queryable.)
Méthode d'extension publiquePris en charge par XNA FrameworkCast<TResult>Effectue un cast des éléments d'un IEnumerable vers le type spécifié. (Défini par Enumerable.)
Méthode d'extension publiquePris en charge par XNA FrameworkOfType<TResult>Filtre les éléments d'un IEnumerable en fonction du type spécifié. (Défini par Enumerable.)
Début

  NomDescription
Implémentation d'interface expliciteMéthode privéePris en charge par XNA FrameworkICollection.CopyToCopie l'ensemble de l'objet NameObjectCollectionBase vers un objet Array unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.
Implémentation d'interface explicitePropriété privéePris en charge par XNA FrameworkICollection.IsSynchronizedObtient une valeur indiquant si l'accès à l'objet NameObjectCollectionBase est synchronisé (thread-safe).
Implémentation d'interface explicitePropriété privéePris en charge par XNA FrameworkICollection.SyncRootObtient un objet qui peut être utilisé pour synchroniser l'accès à l'objet NameObjectCollectionBase.
Début

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

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

La capacité de NameObjectCollectionBase correspond au nombre d'éléments que peut contenir NameObjectCollectionBase. Lorsque des éléments sont ajoutés à NameObjectCollectionBase, la capacité augmente automatiquement par réallocation.

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

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

Dans la version 1.0 du .NET Framework, cette classe utilise des comparaisons de chaînes dépendantes de la culture. Toutefois, dans la version 1.1 et les versions ultérieures du .NET Framework, elle utilise CultureInfo.InvariantCulture pour les comparaisons de chaînes. Pour plus d'informations sur l'impact de la culture sur les comparaisons et le tri, consultez Comparaison et tri des données pour une culture spécifiqueComparaison et tri des données pour une culture spécifiqueet Exécution d'opérations de chaînes indépendantes de la culture.

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

Mise en gardeAttention

La méthode BaseGet ne distingue pas null qui est retourné parce que la clé spécifiée est introuvable et null, retourné parce que la valeur associée à la clé est null.

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


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

*/


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Les membres statiques publics (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 de wrapper synchronisé (thread-safe) pour NameObjectCollectionBase, mais des classes dérivées peuvent créer leurs propres versions synchronisées de NameObjectCollectionBase à l'aide de la propriété SyncRoot.

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 modifier la collection, ce qui entraîne la levée d'une exception par l'énumérateur. Afin de garantir la cohérence de thread au cours de l'énumération, vous pouvez soit verrouiller la collection pendant l'ensemble de l'énumération, soit intercepter les exceptions résultant des modifications apportées par les autres threads.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft