Condividi tramite


InstanceDataCollection Classe

Definizione

Fornisce una raccolta fortemente tipizzata di oggetti InstanceData.

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

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 da in Values una matrice di InstanceDataCollection oggetti . Nell'esempio vengono visualizzati anche 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 InstanceDataCollection classe rappresenta una raccolta contenente tutti i dati di istanza per un contatore. Questa raccolta è contenuta in InstanceDataCollectionCollection quando si usa il ReadCategory metodo .

Costruttori

InstanceDataCollection(String)
Obsoleti.
Obsoleti.
Obsoleti.

Consente di inizializzare una nuova istanza della classe InstanceDataCollection utilizzando il contatore delle prestazioni specificato che definisce un'istanza delle prestazioni.

Proprietà

Count

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

(Ereditato da DictionaryBase)
CounterName

Ottiene il nome del contatore delle prestazioni i cui dati di istanza si desidera ottenere.

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 associati a questo contatore. Si tratta generalmente di un gruppo di valori di contatore non elaborati.

Keys

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

Values

Ottiene i valori del contatore non elaborati che comprendono i dati di istanza per il contatore.

Metodi

Clear()

Cancella il contenuto dell'istanza di DictionaryBase.

(Ereditato da DictionaryBase)
Contains(String)

Stabilisce se un'istanza delle prestazioni con un nome specifico, identificato da uno degli oggetti InstanceData 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(InstanceData[], Int32)

Consente di copiare gli elementi nell'insieme nella matrice unidimensionale specificata 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