Condividi tramite


InstanceDataCollectionCollection Classe

Definizione

Fornisce una raccolta fortemente tipizzata di oggetti InstanceDataCollection.

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

Esempio

Nell'esempio di codice seguente vengono visualizzati i dati dell'istanza per un particolare PerformanceCounterCategory nel computer locale. Viene innanzitutto visualizzato un elenco numerato di PerformanceCounterCategory nomi. Dopo che l'utente immette il numero di una delle categorie, l'esempio ottiene l'oggetto per l'oggetto InstanceDataCollectionCollectionPerformanceCounterCategory. Converte quindi la raccolta restituita dalla Values proprietà in una matrice di InstanceDataCollection oggetti . Nell'esempio vengono visualizzati i dati dell'istanza associati a ogni InstanceDataInstanceDataCollectionoggetto .

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

Commenti

La InstanceDataCollectionCollection classe rappresenta la raccolta restituita dal ReadCategory metodo . Questa raccolta contiene tutti i dati del contatore e dell'istanza. L'insieme contiene un InstanceDataCollection oggetto per ogni contatore. Ogni InstanceDataCollection oggetto contiene i dati sulle prestazioni per tutti i contatori per tale istanza. Pertanto, i dati vengono indicizzati in base al nome del contatore e quindi in base al nome dell'istanza.

Costruttori

InstanceDataCollectionCollection()
Obsoleti.
Obsoleti.
Obsoleti.

Inizializza una nuova istanza della classe InstanceDataCollectionCollection.

Proprietà

Count

Ottiene il numero di elementi contenuti nell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
Dictionary

Ottiene l'elenco degli elementi contenuti nell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
InnerHashtable

Ottiene l'elenco degli elementi contenuti nell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
Item[String]

Ottiene i dati di istanza relativi al contatore specificato.

Keys

Ottiene l'oggetto e le chiavi di registro del contatore per gli oggetti associati all'insieme di dati di questa istanza.

Values

Ottiene i valori dei dati di istanza che comprendono l'insieme delle istanze per il contatore.

Metodi

Clear()

Cancella il contenuto dell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
Contains(String)

Stabilisce se un insieme di dati di istanza per il contatore specificato, identificato da uno degli oggetti InstanceDataCollection indicizzati, è presente nell'insieme.

CopyTo(Array, Int32)

Copia gli elementi di DictionaryBase in una matrice Array unidimensionale in corrispondenza dell'indice specificato.

(Ereditato da DictionaryBase)
CopyTo(InstanceDataCollection[], Int32)

Copia una matrice di istanze di InstanceDataCollection nella raccolta in corrispondenza dell'indice specificato.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetEnumerator()

Restituisce un oggetto IDictionaryEnumerator che consente di scorrere l'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnClear()

Esegue procedure personalizzate aggiuntive prima di cancellare il contenuto dell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
OnClearComplete()

Esegue procedure personalizzate aggiuntive prima di cancellare il contenuto dell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
OnGet(Object, Object)

Ottiene l'elemento con la chiave e il valore specificati nell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
OnInsert(Object, Object)

Esegue procedure personalizzate aggiuntive prima di inserire un nuovo elemento nell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
OnInsertComplete(Object, Object)

Esegue procedure personalizzate aggiuntive dopo aver inserito un nuovo elemento nell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
OnRemove(Object, Object)

Esegue procedure personalizzate aggiuntive prima della rimozione di un elemento dall'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
OnRemoveComplete(Object, Object)

Esegue procedure personalizzate aggiuntive dopo della rimozione di un elemento dall'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
OnSet(Object, Object, Object)

Esegue procedure personalizzate aggiuntive prima di impostare un valore nell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
OnSetComplete(Object, Object, Object)

Esegue procedure personalizzate aggiuntive dopo aver impostato un valore nell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
OnValidate(Object, Object)

Esegue procedure personalizzate aggiuntive durante la convalida dell'elemento con la chiave e il valore specificati.

(Ereditato da DictionaryBase)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso a un oggetto DictionaryBase è sincronizzato (thread-safe).

(Ereditato da DictionaryBase)
ICollection.SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso all'oggetto DictionaryBase.

(Ereditato da DictionaryBase)
IDictionary.Add(Object, Object)

Aggiunge un elemento con la chiave e il valore specificati al metodo DictionaryBase.

(Ereditato da DictionaryBase)
IDictionary.Contains(Object)

Determina se l'oggetto DictionaryBase contiene una chiave specifica.

(Ereditato da DictionaryBase)
IDictionary.IsFixedSize

Ottiene un valore che indica se le dimensioni di un oggetto DictionaryBase sono fisse.

(Ereditato da DictionaryBase)
IDictionary.IsReadOnly

Ottiene un valore che indica se un oggetto DictionaryBase è di sola lettura.

(Ereditato da DictionaryBase)
IDictionary.Item[Object]

Ottiene o imposta il valore associato alla chiave specificata.

(Ereditato da DictionaryBase)
IDictionary.Keys

Ottiene un oggetto ICollection contenente le chiavi dell'oggetto DictionaryBase.

(Ereditato da DictionaryBase)
IDictionary.Remove(Object)

Rimuove l'elemento con la chiave specificata da DictionaryBase.

(Ereditato da DictionaryBase)
IDictionary.Values

Ottiene un oggetto ICollection contenente i valori dell'oggetto DictionaryBase.

(Ereditato da DictionaryBase)
IEnumerable.GetEnumerator()

Restituisce un oggetto IEnumerator che esegue l'iterazione di DictionaryBase.

(Ereditato da DictionaryBase)

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.

Si applica a

Vedi anche