(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

NameObjectCollectionBase-Klasse

Stellt die abstract-Basisklasse für eine Auflistung zugeordneter String-Schlüssel und Object-Werte bereit, auf die entweder über den Schlüssel oder über den Index zugegriffen werden kann.

System.Object
  System.Collections.Specialized.NameObjectCollectionBase
    Weitere Informationen...

Namespace:  System.Collections.Specialized
Assembly:  System (in System.dll)

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

Der NameObjectCollectionBase-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Geschützte MethodeUnterstützt von XNA FrameworkNameObjectCollectionBase()Initialisiert eine neue, leere Instanz der NameObjectCollectionBase-Klasse.
Geschützte MethodeUnterstützt von XNA FrameworkNameObjectCollectionBase(IEqualityComparer)Initialisiert eine neue, leere Instanz der NameObjectCollectionBase-Klasse mit der anfänglichen Standardkapazität und dem angegebenen IEqualityComparer-Objekt.
Geschützte MethodeUnterstützt von XNA FrameworkNameObjectCollectionBase(Int32)Initialisiert eine neue, leere Instanz der NameObjectCollectionBase-Klasse mit der angegebenen Anfangskapazität, wobei der Hashcode-Standardanbieter und Standardcomparer verwendet werden.
Geschützte MethodeUnterstützt von XNA FrameworkNameObjectCollectionBase(IHashCodeProvider, IComparer) Veraltet. Initialisiert eine neue, leere Instanz der NameObjectCollectionBase-Klasse mit der anfänglichen Standardkapazität, wobei der angegebene Hashcodeanbieter und der angegebene Comparer verwendet werden.
Geschützte MethodeUnterstützt von XNA FrameworkNameObjectCollectionBase(Int32, IEqualityComparer)Initialisiert eine neue, leere Instanz der NameObjectCollectionBase-Klasse mit der angegebenen Anfangskapazität und dem angegebenen IEqualityComparer-Objekt.
Geschützte MethodeNameObjectCollectionBase(SerializationInfo, StreamingContext)Initialisiert eine neue Instanz der NameObjectCollectionBase-Klasse, die serialisierbar ist und die angegebene System.Runtime.Serialization.SerializationInfo und den angegebenen System.Runtime.Serialization.StreamingContext verwendet.
Geschützte MethodeUnterstützt von XNA FrameworkNameObjectCollectionBase(Int32, IHashCodeProvider, IComparer) Veraltet. Initialisiert eine neue, leere Instanz der NameObjectCollectionBase-Klasse mit der angegebenen Anfangskapazität, wobei der angegebene Hashcodeanbieter und der angegebene Comparer verwendet werden.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftUnterstützt von XNA FrameworkCountRuft die Anzahl der Schlüssel-Wert-Paare in der NameObjectCollectionBase-Instanz ab.
Geschützte EigenschaftUnterstützt von XNA FrameworkIsReadOnlyRuft einen Wert ab, der angibt, ob die NameObjectCollectionBase-Instanz schreibgeschützt ist, oder legt diesen fest.
Öffentliche EigenschaftUnterstützt von XNA FrameworkKeysRuft eine NameObjectCollectionBase.KeysCollection-Instanz ab, die alle Schlüssel der NameObjectCollectionBase-Instanz enthält.
Zum Seitenanfang

  NameBeschreibung
Geschützte MethodeUnterstützt von XNA FrameworkBaseAddFügt einen Eintrag mit dem angegebenen Schlüssel und Wert der NameObjectCollectionBase-Instanz hinzu.
Geschützte MethodeUnterstützt von XNA FrameworkBaseClearEntfernt alle Einträge aus der NameObjectCollectionBase-Instanz.
Geschützte MethodeUnterstützt von XNA FrameworkBaseGet(Int32)Ruft den Wert des Eintrags am angegebenen Index der NameObjectCollectionBase-Instanz ab.
Geschützte MethodeUnterstützt von XNA FrameworkBaseGet(String)Ruft den Wert des ersten Eintrags mit dem angegebenen Schlüssel aus der NameObjectCollectionBase-Instanz ab.
Geschützte MethodeUnterstützt von XNA FrameworkBaseGetAllKeysGibt ein String-Array zurück, das alle Schlüssel der NameObjectCollectionBase-Instanz enthält.
Geschützte MethodeBaseGetAllValues()Gibt ein Object-Array zurück, das alle Werte der NameObjectCollectionBase-Instanz enthält.
Geschützte MethodeBaseGetAllValues(Type)Gibt ein Array des angegebenen Typs zurück, das alle Werte der NameObjectCollectionBase-Instanz enthält.
Geschützte MethodeUnterstützt von XNA FrameworkBaseGetKeyRuft den Schlüssel des Eintrags am angegebenen Index der NameObjectCollectionBase-Instanz ab.
Geschützte MethodeUnterstützt von XNA FrameworkBaseHasKeysRuft einen Wert ab, der angibt, ob die NameObjectCollectionBase-Instanz Einträge enthält, deren Schlüssel nicht null ist.
Geschützte MethodeUnterstützt von XNA FrameworkBaseRemoveEntfernt die Einträge mit dem angegebenen Schlüssel aus der NameObjectCollectionBase-Instanz.
Geschützte MethodeUnterstützt von XNA FrameworkBaseRemoveAtEntfernt den Eintrag am angegebenen Index der NameObjectCollectionBase-Instanz.
Geschützte MethodeUnterstützt von XNA FrameworkBaseSet(Int32, Object)Legt den Wert des Eintrags am angegebenen Index der NameObjectCollectionBase-Instanz fest.
Geschützte MethodeUnterstützt von XNA FrameworkBaseSet(String, Object)Legt den Wert des ersten Eintrags mit dem angegebenen Schlüssel in der NameObjectCollectionBase-Instanz fest. Wenn der Schlüssel nicht vorhanden ist, wird der NameObjectCollectionBase-Instanz ein Eintrag mit dem angegebenen Wert und Schlüssel hinzugefügt.
Öffentliche MethodeUnterstützt von XNA FrameworkEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeUnterstützt von XNA FrameworkFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA FrameworkGetEnumeratorGibt einen Enumerator zurück, der die NameObjectCollectionBase durchläuft.
Öffentliche MethodeUnterstützt von XNA FrameworkGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetObjectDataImplementiert die ISerializable-Schnittstelle und gibt die zum Serialisieren der NameObjectCollectionBase-Instanz erforderlichen Daten zurück.
Öffentliche MethodeUnterstützt von XNA FrameworkGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeUnterstützt von XNA FrameworkMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeOnDeserializationImplementiert die ISerializable-Schnittstelle und löst das Deserialisierungsereignis aus, sobald die Deserialisierung abgeschlossen ist.
Öffentliche MethodeUnterstützt von XNA FrameworkToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche ErweiterungsmethodeAsParallelErmöglicht die Parallelisierung einer Abfrage. (Durch ParallelEnumerable definiert.)
Öffentliche ErweiterungsmethodeAsQueryableKonvertiert einen IEnumerable in einen IQueryable. (Durch Queryable definiert.)
Öffentliche ErweiterungsmethodeUnterstützt von XNA FrameworkCast<TResult>Wandelt die Elemente eines IEnumerable in den angegebenen Typ um. (Durch Enumerable definiert.)
Öffentliche ErweiterungsmethodeUnterstützt von XNA FrameworkOfType<TResult>Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs. (Durch Enumerable definiert.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate MethodeUnterstützt von XNA FrameworkICollection.CopyToKopiert die gesamte NameObjectCollectionBase in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays.
Explizite SchnittstellenimplementierungPrivate EigenschaftUnterstützt von XNA FrameworkICollection.IsSynchronizedRuft einen Wert ab, der angibt, ob der Zugriff auf das NameObjectCollectionBase-Objekt synchronisiert (threadsicher) ist.
Explizite SchnittstellenimplementierungPrivate EigenschaftUnterstützt von XNA FrameworkICollection.SyncRootRuft ein Objekt ab, mit dem der Zugriff auf das NameObjectCollectionBase-Objekt synchronisiert werden kann.
Zum Seitenanfang

Diese Klasse verwendet eine Hashtabelle als zugrunde liegende Struktur.

Jedes Element ist ein Schlüssel-Wert-Paar.

Die Kapazität eines NameObjectCollectionBase gibt die Anzahl der Elemente an, die das NameObjectCollectionBase aufnehmen kann. Beim Hinzufügen von Elementen zu einer NameObjectCollectionBase wird die Kapazität nach Bedarf automatisch durch Neureservierung erhöht.

Der Hashcodeanbieter verteilt Hashcodes für Schlüssel in der NameObjectCollectionBase-Instanz. Der Hashcode-Standardanbieter ist CaseInsensitiveHashCodeProvider.

Der Comparer ermittelt, ob zwei Schlüssel gleich sind. Der Standardcomparer ist CaseInsensitiveComparer.

In .NET Framework, Version 1.0, verwendet diese Klasse kulturabhängige Zeichenfolgenvergleiche. In .NET Framework, Version 1.1 und höher, verwendet diese Klasse jedoch CultureInfo.InvariantCulture bei Zeichenfolgenvergleichen. Weitere Informationen über den Einfluss der Kultur auf Vergleiche und die Sortierung finden Sie unter Vergleichen und Sortieren von Daten für eine bestimmte KulturVergleichen und Sortieren von Daten für eine bestimmte Kulturund Durchführen kulturunabhängiger Zeichenfolgenoperationen.

null ist als Schlüssel oder Wert zulässig.

WarnhinweisVorsicht

Die BaseGet-Methode unterscheidet nicht zwischen einem Wert null, der zurückgegeben wird, weil der angegebene Schlüssel nicht gefunden wurde, und einem Wert null, der zurückgegeben wird, weil der dem Schlüssel zugeordnete Wert null ist.

Das folgende Codebeispiel stellt das Implementieren und Verwenden der NameObjectCollectionBase-Klasse dar.


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

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 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 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Öffentliche statische (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Diese Implementierung stellt keinen synchronisierten (threadsicheren) Wrapper für die NameObjectCollectionBase bereit, abgeleitete Klassen können jedoch mithilfe der SyncRoot-Eigenschaft eigene synchronisierte Versionen der NameObjectCollectionBase erstellen.

Die Enumeration einer Auflistung ist systemintern keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, besteht die Möglichkeit, dass andere Threads sie ändern. Dies führt dazu, dass der Enumerator eine Ausnahme auslöst. Sie können während der Enumeration Threadsicherheit gewährleisten, indem Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen abfangen, die durch Änderungen ausgelöst werden, die von anderen Threads vorgenommen werden.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft