ReadOnlyCollectionBase Klasse
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

ReadOnlyCollectionBase-Klasse

 

Stellt die abstract-Basisklasse für eine stark typisierte nicht generische schreibgeschützte Auflistung bereit.

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

System.Object
  System.Collections.ReadOnlyCollectionBase
    System.ComponentModel.ComponentCollection
    System.Configuration.ConfigurationLocationCollection
    System.Diagnostics.ProcessModuleCollection
    System.Diagnostics.ProcessThreadCollection
    System.DirectoryServices.ActiveDirectory.ActiveDirectoryRoleCollection
    System.DirectoryServices.ActiveDirectory.AdamInstanceCollection
    System.DirectoryServices.ActiveDirectory.AdamRoleCollection
    System.DirectoryServices.ActiveDirectory.ApplicationPartitionCollection
    System.DirectoryServices.ActiveDirectory.AttributeMetadataCollection
    System.DirectoryServices.ActiveDirectory.DomainCollection
    System.DirectoryServices.ActiveDirectory.DomainControllerCollection
    System.DirectoryServices.ActiveDirectory.ForestTrustDomainInfoCollection
    System.DirectoryServices.ActiveDirectory.ForestTrustRelationshipCollisionCollection
    System.DirectoryServices.ActiveDirectory.GlobalCatalogCollection
    System.DirectoryServices.ActiveDirectory.ReadOnlyActiveDirectorySchemaClassCollection
    System.DirectoryServices.ActiveDirectory.ReadOnlyActiveDirectorySchemaPropertyCollection
    System.DirectoryServices.ActiveDirectory.ReadOnlyDirectoryServerCollection
    System.DirectoryServices.ActiveDirectory.ReadOnlySiteCollection
    System.DirectoryServices.ActiveDirectory.ReadOnlySiteLinkBridgeCollection
    System.DirectoryServices.ActiveDirectory.ReadOnlySiteLinkCollection
    System.DirectoryServices.ActiveDirectory.ReadOnlyStringCollection
    System.DirectoryServices.ActiveDirectory.ReplicationConnectionCollection
    System.DirectoryServices.ActiveDirectory.ReplicationCursorCollection
    System.DirectoryServices.ActiveDirectory.ReplicationFailureCollection
    System.DirectoryServices.ActiveDirectory.ReplicationNeighborCollection
    System.DirectoryServices.ActiveDirectory.ReplicationOperationCollection
    System.DirectoryServices.ActiveDirectory.TopLevelNameCollection
    System.DirectoryServices.ActiveDirectory.TrustRelationshipInformationCollection
    System.DirectoryServices.Protocols.PartialResultsCollection
    System.DirectoryServices.Protocols.SearchResultEntryCollection
    System.DirectoryServices.Protocols.SearchResultReferenceCollection
    System.DirectoryServices.ResultPropertyValueCollection
    System.Drawing.Design.CategoryNameCollection
    System.Drawing.Design.ToolboxItemCollection
    System.Security.AccessControl.AuthorizationRuleCollection
    System.Security.Authentication.ExtendedProtection.ServiceNameCollection
    System.Web.Management.WebBaseEventCollection
    System.Web.UI.Design.ClientScriptItemCollection
    System.Web.UI.WebControls.WebParts.CatalogPartCollection
    System.Web.UI.WebControls.WebParts.ConnectionInterfaceCollection
    System.Web.UI.WebControls.WebParts.ConsumerConnectionPointCollection
    System.Web.UI.WebControls.WebParts.EditorPartCollection
    System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection
    System.Web.UI.WebControls.WebParts.TransformerTypeCollection
    System.Web.UI.WebControls.WebParts.WebPartCollection
    System.Web.UI.WebControls.WebParts.WebPartDescriptionCollection
    System.Web.UI.WebControls.WebParts.WebPartVerbCollection
    System.Web.UI.WebControls.WebParts.WebPartZoneCollection
    System.Windows.Forms.FormCollection
    System.Windows.Forms.InputLanguageCollection

[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class ReadOnlyCollectionBase : ICollection, IEnumerable

NameBeschreibung
System_CAPS_protmethodReadOnlyCollectionBase()

Initialisiert eine neue Instanz der ReadOnlyCollectionBase-Klasse.

NameBeschreibung
System_CAPS_pubpropertyCount

Ruft die Anzahl der in der ReadOnlyCollectionBase-Instanz enthaltenen Elemente ab.

System_CAPS_protpropertyInnerList

Ruft die Liste der in der ReadOnlyCollectionBase-Instanz enthaltenen Elemente ab.

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von Object.)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von Object.)

System_CAPS_pubmethodGetEnumerator()

Gibt einen Enumerator zurück, der die ReadOnlyCollectionBase durchläuft.

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion. (Geerbt von Object.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von Object.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von Object.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von Object.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethodICollection.CopyTo(Array, Int32)

Kopiert die gesamte ReadOnlyCollectionBase in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays.

NameBeschreibung
System_CAPS_pubmethodAsParallel()

Überladen. Ermöglicht die Parallelisierung einer Abfrage.(Definido por ParallelEnumerable).

System_CAPS_pubmethodAsQueryable()

Überladen. Konvertiert einen IEnumerable in einen IQueryable.(Definido por Queryable).

System_CAPS_pubmethodCast<TResult>()

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um.(Definido por Enumerable).

System_CAPS_pubmethodOfType<TResult>()

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs.(Definido por Enumerable).

Eine ReadOnlyCollectionBase-Instanz ist immer schreibgeschützt.Eine nicht schreibgeschützte Version dieser Klasse finden Sie unter CollectionBase.

Hinweise zur Implementierung:

Diese Basisklasse wird bereitgestellt, um das Erstellen einer benutzerdefinierten, schreibgeschützten streng typisierten Auflistung bei der Implementierung zu vereinfachen.Bei der Implementierung empfiehlt es sich, diese Basisklasse zu erweitern, anstatt eine eigene zu erstellen.Die Member dieser Basisklasse sind geschützt und dürfen nur durch eine abgeleitete Klasse verwendet werden.

Diese Klasse stellt die zugrunde liegende Auflistung über die InnerList-Eigenschaft zur Verfügung, die nur für die Verwendung durch direkt von ReadOnlyCollectionBase abgeleiteten Klassen vorgesehen ist.Für die abgeleitete Klasse muss sichergestellt sein, dass ihre eigenen Benutzer die zugrunde liegende Auflistung nicht ändern können.

Im folgenden Codebeispiel wird die ReadOnlyCollectionBase-Klasse implementiert.

using System;
using System.Collections;

public class ROCollection : ReadOnlyCollectionBase  {

   public ROCollection( IList sourceList )  {
      InnerList.AddRange( sourceList );
   }

   public Object this[ int index ]  {
      get  {
         return( InnerList[index] );
      }
   }

   public int IndexOf( Object value )  {
      return( InnerList.IndexOf( value ) );
   }

   public bool Contains( Object value )  {
      return( InnerList.Contains( value ) );
   }

}


public class SamplesCollectionBase  {

   public static void Main()  {

      // Create an ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add( "red" );
      myAL.Add( "blue" );
      myAL.Add( "yellow" );
      myAL.Add( "green" );
      myAL.Add( "orange" );
      myAL.Add( "purple" );

      // Create a new ROCollection that contains the elements in myAL.
      ROCollection myCol = new ROCollection( myAL );

      // Display the contents of the collection using foreach. This is the preferred method.
      Console.WriteLine( "Contents of the collection (using foreach):" );
      PrintValues1( myCol );

      // Display the contents of the collection using the enumerator.
      Console.WriteLine( "Contents of the collection (using enumerator):" );
      PrintValues2( myCol );

      // Display the contents of the collection using the Count property and the Item property.
      Console.WriteLine( "Contents of the collection (using Count and Item):" );
      PrintIndexAndValues( myCol );

      // Search the collection with Contains and IndexOf.
      Console.WriteLine( "Contains yellow: {0}", myCol.Contains( "yellow" ) );
      Console.WriteLine( "orange is at index {0}.", myCol.IndexOf( "orange" ) );
      Console.WriteLine();

   }

   // Uses the Count property and the Item property.
   public static void PrintIndexAndValues( ROCollection myCol )  {
      for ( int i = 0; i < myCol.Count; i++ )
         Console.WriteLine( "   [{0}]:   {1}", i, myCol[i] );
      Console.WriteLine();
   }

   // Uses the foreach statement which hides the complexity of the enumerator.
   // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection.
   public static void PrintValues1( ROCollection myCol )  {
      foreach ( Object obj in myCol )
         Console.WriteLine( "   {0}", obj );
      Console.WriteLine();
   }

   // Uses the enumerator. 
   // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection.
   public static void PrintValues2( ROCollection myCol )  {
      System.Collections.IEnumerator myEnumerator = myCol.GetEnumerator();
      while ( myEnumerator.MoveNext() )
         Console.WriteLine( "   {0}", myEnumerator.Current );
      Console.WriteLine();
   }

}


/* 
This code produces the following output.

Contents of the collection (using foreach):
   red
   blue
   yellow
   green
   orange
   purple

Contents of the collection (using enumerator):
   red
   blue
   yellow
   green
   orange
   purple

Contents of the collection (using Count and Item):
   [0]:   red
   [1]:   blue
   [2]:   yellow
   [3]:   green
   [4]:   orange
   [5]:   purple

Contains yellow: True
orange is at index 4.

*/

Universal Windows Platform
Verfügbar seit 10
.NET Framework
Verfügbar seit 1.1

Ö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 ReadOnlyCollectionBase bereit, abgeleitete Klassen können jedoch mithilfe der SyncRoot-Eigenschaft eigene synchronisierte Versionen der ReadOnlyCollectionBase 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.

Zurück zum Anfang
Anzeigen:
© 2016 Microsoft