Partager via


InstanceDataCollection Classe

Définition

Fournit une collection fortement typée d’objets InstanceData.

public ref class InstanceDataCollection : System::Collections::DictionaryBase
public class InstanceDataCollection : System.Collections.DictionaryBase
type InstanceDataCollection = class
    inherit DictionaryBase
Public Class InstanceDataCollection
Inherits DictionaryBase
Héritage
InstanceDataCollection

Exemples

L’exemple de code suivant affiche les données instance pour un particulier PerformanceCounterCategory sur l’ordinateur local. Il affiche d’abord une liste numérotée de PerformanceCounterCategory noms. Une fois que l’utilisateur a entré le numéro d’une des catégories, l’exemple obtient le InstanceDataCollectionCollection pour cela PerformanceCounterCategory. Il convertit ensuite la collection retournée par Values en tableau d’objets InstanceDataCollection . L’exemple affiche également les données instance associées à chaque InstanceDataInstanceDataCollection.

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

Remarques

La InstanceDataCollection classe représente une collection contenant toutes les données instance d’un compteur. Cette collection est contenue dans lors de l’utilisation InstanceDataCollectionCollection de la ReadCategory méthode .

Constructeurs

InstanceDataCollection(String)
Obsolète.
Obsolète.
Obsolète.

Initialise une nouvelle instance de la classe InstanceDataCollection à l'aide du compteur de performance spécifié (qui définit une instance de performance).

Propriétés

Count

Obtient le nombre d'éléments contenus dans l'instance DictionaryBase.

(Hérité de DictionaryBase)
CounterName

Obtient le nom du compteur de performance dont vous souhaitez obtenir les données d'instance.

Dictionary

Obtient la liste des éléments contenus dans l’instance de DictionaryBase.

(Hérité de DictionaryBase)
InnerHashtable

Obtient la liste des éléments contenus dans l’instance de DictionaryBase.

(Hérité de DictionaryBase)
Item[String]

Obtient les données d'instance associées à ce compteur. Il s'agit généralement d'un jeu de valeurs de compteur brutes.

Keys

Obtient les clés de Registre de l'objet et du compteur pour les objets associés à ces données d'instance.

Values

Obtient les valeurs de compteur brutes comprenant les données d'instance du compteur.

Méthodes

Clear()

Efface le contenu de l'instance DictionaryBase.

(Hérité de DictionaryBase)
Contains(String)

Détermine si une instance de performance portant un nom spécifié (identifié par un des objets InstanceData indexés) existe dans la collection.

CopyTo(Array, Int32)

Copie les entrées des éléments DictionaryBase dans un Array à une dimension à l'index spécifié.

(Hérité de DictionaryBase)
CopyTo(InstanceData[], Int32)

Copie les éléments de la collection dans le tableau unidimensionnel spécifié à l'index déterminé.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetEnumerator()

Retourne IDictionaryEnumerator qui itère au sein de l'instance de DictionaryBase.

(Hérité de DictionaryBase)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnClear()

Effectue des traitements personnalisés supplémentaires avant l'effacement du contenu de l'instance de DictionaryBase.

(Hérité de DictionaryBase)
OnClearComplete()

Exécute des processus personnalisés supplémentaires après l'effacement du contenu de l'instance de DictionaryBase.

(Hérité de DictionaryBase)
OnGet(Object, Object)

Obtient l'élément correspondant à la clé et la valeur spécifiées dans l'instance de DictionaryBase.

(Hérité de DictionaryBase)
OnInsert(Object, Object)

Exécute les processus personnalisés supplémentaires avant l'insertion d'un nouvel élément dans l'instance de DictionaryBase.

(Hérité de DictionaryBase)
OnInsertComplete(Object, Object)

Exécute les processus personnalisés supplémentaires après l'insertion d'un nouvel élément dans l'instance de DictionaryBase.

(Hérité de DictionaryBase)
OnRemove(Object, Object)

Effectue des traitements personnalisés supplémentaires avant la suppression d'un élément de l'instance de DictionaryBase.

(Hérité de DictionaryBase)
OnRemoveComplete(Object, Object)

Exécute des processus personnalisés supplémentaires après la suppression d'un élément de l'instance de DictionaryBase.

(Hérité de DictionaryBase)
OnSet(Object, Object, Object)

Exécute des processus personnalisés supplémentaires avant la définition d'une valeur dans l'instance de DictionaryBase.

(Hérité de DictionaryBase)
OnSetComplete(Object, Object, Object)

Exécute des processus personnalisés supplémentaires après la définition d'une valeur dans l'instance de DictionaryBase.

(Hérité de DictionaryBase)
OnValidate(Object, Object)

Effectue des traitements personnalisés supplémentaires lors de la validation de l'élément correspondant à la clé et la valeur spécifiées.

(Hérité de DictionaryBase)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

ICollection.IsSynchronized

Obtient une valeur indiquant si l'accès à un objet DictionaryBase est synchronisé (thread-safe).

(Hérité de DictionaryBase)
ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l'accès à un objet DictionaryBase.

(Hérité de DictionaryBase)
IDictionary.Add(Object, Object)

Ajoute un élément avec la clé et la valeur spécifiées dans DictionaryBase.

(Hérité de DictionaryBase)
IDictionary.Contains(Object)

Détermine si DictionaryBase contient une clé spécifique.

(Hérité de DictionaryBase)
IDictionary.IsFixedSize

Obtient une valeur indiquant si un objet DictionaryBase est de taille fixe.

(Hérité de DictionaryBase)
IDictionary.IsReadOnly

Obtient une valeur indiquant si un objet DictionaryBase est en lecture seule.

(Hérité de DictionaryBase)
IDictionary.Item[Object]

Obtient ou définit la valeur associée à la clé spécifiée.

(Hérité de DictionaryBase)
IDictionary.Keys

Obtient un objet ICollection contenant les clés de l'objet DictionaryBase.

(Hérité de DictionaryBase)
IDictionary.Remove(Object)

Supprime l'élément avec la clé spécifiée d'DictionaryBase.

(Hérité de DictionaryBase)
IDictionary.Values

Obtient un objet ICollection contenant les valeurs de l'objet DictionaryBase.

(Hérité de DictionaryBase)
IEnumerable.GetEnumerator()

Retourne un IEnumerator qui itère au sein de DictionaryBase.

(Hérité de DictionaryBase)

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à

Voir aussi