Teilen über


InstanceDataCollectionCollection Klasse

Definition

Stellt eine stark typisierte Auflistung von InstanceDataCollection-Objekten bereit.

public ref class InstanceDataCollectionCollection : System::Collections::DictionaryBase
public class InstanceDataCollectionCollection : System.Collections.DictionaryBase
type InstanceDataCollectionCollection = class
    inherit DictionaryBase
Public Class InstanceDataCollectionCollection
Inherits DictionaryBase
Vererbung
InstanceDataCollectionCollection

Beispiele

Im folgenden Codebeispiel werden die instance Daten für einen bestimmten PerformanceCounterCategory auf dem lokalen Computer angezeigt. Zuerst wird eine nummerierte Liste mit PerformanceCounterCategory Namen angezeigt. Nachdem der Benutzer die Nummer einer der Kategorien eingegeben hat, ruft das Beispiel für diesen InstanceDataCollectionCollectionPerformanceCounterCategoryab. Anschließend wird die von der Values -Eigenschaft zurückgegebene Auflistung in ein Array von InstanceDataCollection -Objekten konvertiert. Im Beispiel werden die instance Daten angezeigt, die jedem InstanceData zugeordnet InstanceDataCollectionsind.

using System;
using System.Diagnostics;
using System.Collections;

class InstDataKeysValuesMod
{

    private static string categoryName;

    public static void Main()
    {
        string catNumStr;
        int categoryNum;

        PerformanceCounterCategory[] categories = PerformanceCounterCategory.GetCategories();

        Console.WriteLine("These categories are registered on this computer:");

        int catX;
        for(catX=0; catX<categories.Length; catX++)
        {
            Console.WriteLine("{0,4} - {1}", catX+1, categories[catX].CategoryName);
        }

        // Ask the user to choose a category.
        Console.Write("Enter the category number from the above list: ");
        catNumStr = Console.ReadLine();

        // Validate the entered category number.
        try
        {
            categoryNum = int.Parse(catNumStr);
            if (categoryNum<1||categoryNum>categories.Length)
            {
                throw new Exception(String.Format("The category number must be in the " +
                    "range 1..{0}.", categories.Length));
            }
            categoryName = categories[(categoryNum - 1)].CategoryName;
        }
        catch(Exception ex)
        {
            Console.WriteLine("\"{0}\" is not a valid category number." +
                "\r\n{1}", catNumStr, ex.Message);
            return;
        }

        // Process the InstanceDataCollectionCollection for this category.
        PerformanceCounterCategory pcc = new PerformanceCounterCategory(categoryName);
        InstanceDataCollectionCollection idColCol = pcc.ReadCategory();

        ICollection idColColKeys = idColCol.Keys;
        string[] idCCKeysArray = new string[idColColKeys.Count];
        idColColKeys.CopyTo(idCCKeysArray, 0);

        ICollection idColColValues = idColCol.Values;
        InstanceDataCollection[] idCCValuesArray = new InstanceDataCollection[idColColValues.Count];
        idColColValues.CopyTo(idCCValuesArray, 0);

        Console.WriteLine("InstanceDataCollectionCollection for \"{0}\" " +
            "has {1} elements.", categoryName, idColCol.Count);

        // Display the InstanceDataCollectionCollection Keys and Values.
        // The Keys and Values collections have the same number of elements.
        int index;
        for(index=0; index<idCCKeysArray.Length; index++)
        {
            Console.WriteLine("  Next InstanceDataCollectionCollection " +
                "Key is \"{0}\"", idCCKeysArray[index]);
            ProcessInstanceDataCollection(idCCValuesArray[index]);
        }
    }

    // Display the contents of an InstanceDataCollection.
    public static void ProcessInstanceDataCollection(InstanceDataCollection idCol)
    {

        ICollection idColKeys = idCol.Keys;
        string[] idColKeysArray = new string[idColKeys.Count];
        idColKeys.CopyTo(idColKeysArray, 0);

        ICollection idColValues = idCol.Values;
        InstanceData[] idColValuesArray = new InstanceData[idColValues.Count];
        idColValues.CopyTo(idColValuesArray, 0);

        Console.WriteLine("  InstanceDataCollection for \"{0}\" " +
            "has {1} elements.", idCol.CounterName, idCol.Count);

        // Display the InstanceDataCollection Keys and Values.
        // The Keys and Values collections have the same number of elements.
        int index;
        for(index=0; index<idColKeysArray.Length; index++)
        {
            Console.WriteLine("    Next InstanceDataCollection " +
                "Key is \"{0}\"", idColKeysArray[index]);
            ProcessInstanceDataObject(idColValuesArray[index]);
        }
    }

    // Display the contents of an InstanceData object.
    public static void ProcessInstanceDataObject(InstanceData instData)
    {
        CounterSample sample = instData.Sample;

        Console.WriteLine("    From InstanceData:\r\n      " +
            "InstanceName: {0,-31} RawValue: {1}", instData.InstanceName, instData.Sample.RawValue);
        Console.WriteLine("    From CounterSample:\r\n      " +
            "CounterType: {0,-32} SystemFrequency: {1}\r\n" +
            "      BaseValue: {2,-34} RawValue: {3}\r\n" +
            "      CounterFrequency: {4,-27} CounterTimeStamp: {5}\r\n" +
            "      TimeStamp: {6,-34} TimeStamp100nSec: {7}", sample.CounterType, sample.SystemFrequency, sample.BaseValue, sample.RawValue, sample.CounterFrequency, sample.CounterTimeStamp, sample.TimeStamp, sample.TimeStamp100nSec);
    }
}
Imports System.Diagnostics
Imports System.Collections

Module InstDataKeysValuesMod

    Private categoryName As String

    Sub Main()
        Dim catNumStr As String
        Dim categoryNum As Integer

        Dim categories As PerformanceCounterCategory() = _
            PerformanceCounterCategory.GetCategories()

        Console.WriteLine( _
            "These categories are registered on this computer:")

        Dim catX As Integer
        For catX = 0 To categories.Length - 1
            Console.WriteLine("{0,4} - {1}", catX + 1, _
                categories(catX).CategoryName)
        Next catX

        ' Ask the user to choose a category.
        Console.Write( _
            "Enter the category number from the above list: ")
        catNumStr = Console.ReadLine()

        ' Validate the entered category number.
        Try
            categoryNum = Integer.Parse(catNumStr)
            If categoryNum < 1 Or categoryNum > categories.Length Then
                Throw New Exception( _
                    String.Format("The category number must be in the " & _
                        "range 1..{0}.", categories.Length))
            End If
            categoryName = categories((categoryNum - 1)).CategoryName

        Catch ex As Exception
            Console.WriteLine("""{0}"" is not a valid category number." & _
                vbCrLf & "{1}", catNumStr, ex.Message)
            Return
        End Try

        ' Process the InstanceDataCollectionCollection for this category.
        Dim pcc As New PerformanceCounterCategory(categoryName)
        Dim idColCol As InstanceDataCollectionCollection = pcc.ReadCategory()

        Dim idColColKeys As ICollection = idColCol.Keys
        Dim idCCKeysArray(idColColKeys.Count - 1) As String
        idColColKeys.CopyTo(idCCKeysArray, 0)

        Dim idColColValues As ICollection = idColCol.Values
        Dim idCCValuesArray(idColColValues.Count - 1) As InstanceDataCollection
        idColColValues.CopyTo(idCCValuesArray, 0)

        Console.WriteLine("InstanceDataCollectionCollection for ""{0}"" " & _
            "has {1} elements.", categoryName, idColCol.Count)

        ' Display the InstanceDataCollectionCollection Keys and Values.
        ' The Keys and Values collections have the same number of elements.
        Dim index As Integer
        For index = 0 To idCCKeysArray.Length - 1
            Console.WriteLine("  Next InstanceDataCollectionCollection " & _
                "Key is ""{0}""", idCCKeysArray(index))
            ProcessInstanceDataCollection(idCCValuesArray(index))
        Next index
    End Sub

    ' Display the contents of an InstanceDataCollection.
    Sub ProcessInstanceDataCollection(ByVal idCol As InstanceDataCollection)

        Dim idColKeys As ICollection = idCol.Keys
        Dim idColKeysArray(idColKeys.Count - 1) As String
        idColKeys.CopyTo(idColKeysArray, 0)

        Dim idColValues As ICollection = idCol.Values
        Dim idColValuesArray(idColValues.Count - 1) As InstanceData
        idColValues.CopyTo(idColValuesArray, 0)

        Console.WriteLine("  InstanceDataCollection for ""{0}"" " & _
            "has {1} elements.", idCol.CounterName, idCol.Count)

        ' Display the InstanceDataCollection Keys and Values.
        ' The Keys and Values collections have the same number of elements.
        Dim index As Integer
        For index = 0 To idColKeysArray.Length - 1
            Console.WriteLine("    Next InstanceDataCollection " & _
                "Key is ""{0}""", idColKeysArray(index))
            ProcessInstanceDataObject(idColValuesArray(index))
        Next index
    End Sub

    ' Display the contents of an InstanceData object.
    Sub ProcessInstanceDataObject(ByVal instData As InstanceData)
        Dim sample As CounterSample = instData.Sample

        Console.WriteLine("    From InstanceData:" & vbCrLf & "      " & _
            "InstanceName: {0,-31} RawValue: {1}", _
            instData.InstanceName, instData.Sample.RawValue)
        Console.WriteLine("    From CounterSample:" & vbCrLf & "      " & _
            "CounterType: {0,-32} SystemFrequency: {1}" & vbCrLf & _
            "      BaseValue: {2,-34} RawValue: {3}" & vbCrLf & _
            "      CounterFrequency: {4,-27} CounterTimeStamp: {5}" & vbCrLf & _
            "      TimeStamp: {6,-34} TimeStamp100nSec: {7}", _
            sample.CounterType, sample.SystemFrequency, sample.BaseValue, _
            sample.RawValue, sample.CounterFrequency, sample.CounterTimeStamp, _
            sample.TimeStamp, sample.TimeStamp100nSec)
    End Sub
End Module

Hinweise

Die InstanceDataCollectionCollection -Klasse stellt die von der ReadCategory -Methode zurückgegebene Auflistung dar. Diese Auflistung enthält alle Indikatoren und instance Daten. Die Auflistung enthält ein InstanceDataCollection -Objekt für jeden Leistungsindikator. Jedes InstanceDataCollection Objekt enthält die Leistungsdaten für alle Leistungsindikatoren für diese instance. Daher werden die Daten nach dem Zählernamen und dann nach instance Namen indiziert.

Konstruktoren

InstanceDataCollectionCollection()
Veraltet.
Veraltet.
Veraltet.

Initialisiert eine neue Instanz der InstanceDataCollectionCollection-Klasse.

Eigenschaften

Count

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

(Geerbt von DictionaryBase)
Dictionary

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

(Geerbt von DictionaryBase)
InnerHashtable

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

(Geerbt von DictionaryBase)
Item[String]

Ruft die Instanzdaten für den angegebenen Zähler ab.

Keys

Ruft die Objekt- und Zählerregistrierungsschlüssel für die Objekte ab, die dieser Auflistung von Instanzdaten zugeordnet sind.

Values

Ruft die Instanzdaten ab, die die Auflistung von Instanzen für den Zähler enthalten.

Methoden

Clear()

Löscht den Inhalt der DictionaryBase-Instanz.

(Geerbt von DictionaryBase)
Contains(String)

Bestimmt, ob für den angegebenen Zähler, der durch eines der indizierten InstanceDataCollection-Objekte bezeichnet wird, in der Auflistung eine Auflistung von Instanzdaten vorhanden ist.

CopyTo(Array, Int32)

Kopiert die DictionaryBase-Elemente am angegebenen Index in ein eindimensionales Array.

(Geerbt von DictionaryBase)
CopyTo(InstanceDataCollection[], Int32)

Kopiert ein Array von InstanceDataCollection-Instanzen am angegebenen Index in die Auflistung.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetEnumerator()

Gibt einen IDictionaryEnumerator zurück, der die DictionaryBase-Instanz durchläuft.

(Geerbt von DictionaryBase)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnClear()

Führt vor dem Löschen des Inhalts der DictionaryBase-Instanz zusätzliche benutzerdefinierte Prozesse aus.

(Geerbt von DictionaryBase)
OnClearComplete()

Führt nach dem Löschen des Inhalts der DictionaryBase-Instanz zusätzliche benutzerdefinierte Prozesse aus.

(Geerbt von DictionaryBase)
OnGet(Object, Object)

Ruft das Element mit dem angegebenen Schlüssel und Wert aus der DictionaryBase-Instanz ab.

(Geerbt von DictionaryBase)
OnInsert(Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse vor dem Einfügen eines neuen Elements in die DictionaryBase-Instanz aus.

(Geerbt von DictionaryBase)
OnInsertComplete(Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse nach dem Einfügen eines neuen Elements in die DictionaryBase-Instanz aus.

(Geerbt von DictionaryBase)
OnRemove(Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse vor dem Entfernen eines Elements aus der DictionaryBase-Instanz aus.

(Geerbt von DictionaryBase)
OnRemoveComplete(Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse nach dem Entfernen eines Elements aus der DictionaryBase-Instanz aus.

(Geerbt von DictionaryBase)
OnSet(Object, Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse vor dem Festlegen eines Werts in der DictionaryBase-Instanz aus.

(Geerbt von DictionaryBase)
OnSetComplete(Object, Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse nach dem Festlegen eines Werts in der DictionaryBase-Instanz aus.

(Geerbt von DictionaryBase)
OnValidate(Object, Object)

Führt bei der Überprüfung des Elements mit dem angegebenen Schlüssel und Wert zusätzliche benutzerdefinierte Aktionen aus.

(Geerbt von DictionaryBase)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf ein DictionaryBase-Objekt synchronisiert (threadsicher) ist.

(Geerbt von DictionaryBase)
ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf ein DictionaryBase-Objekt synchronisiert werden kann.

(Geerbt von DictionaryBase)
IDictionary.Add(Object, Object)

Fügt dem DictionaryBase ein Element mit dem angegebenen Schlüssel und Wert hinzu.

(Geerbt von DictionaryBase)
IDictionary.Contains(Object)

Stellt fest, ob der DictionaryBase einen bestimmten Schlüssel enthält.

(Geerbt von DictionaryBase)
IDictionary.IsFixedSize

Ruft einen Wert ab, der angibt, ob ein DictionaryBase-Objekt eine feste Größe hat.

(Geerbt von DictionaryBase)
IDictionary.IsReadOnly

Ruft einen Wert ab, der angibt, ob ein DictionaryBase-Objekt schreibgeschützt ist.

(Geerbt von DictionaryBase)
IDictionary.Item[Object]

Ruft den Wert ab, der dem angegebenen Schlüssel zugeordnet ist, oder legt diesen fest.

(Geerbt von DictionaryBase)
IDictionary.Keys

Ruft ein ICollection-Objekt ab, das die Schlüssel im DictionaryBase-Objekt enthält.

(Geerbt von DictionaryBase)
IDictionary.Remove(Object)

Entfernt das Element mit dem angegebenen Schlüssel aus dem DictionaryBase.

(Geerbt von DictionaryBase)
IDictionary.Values

Ruft ein ICollection-Objekt ab, das die Werte des DictionaryBase-Objekts enthält.

(Geerbt von DictionaryBase)
IEnumerable.GetEnumerator()

Gibt einen IEnumerator zurück, der DictionaryBase durchläuft.

(Geerbt von DictionaryBase)

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für:

Weitere Informationen