InstanceDataCollectionCollection Klass

Definition

Tillhandahåller en starkt typad samling InstanceDataCollection objekt.

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

Exempel

I följande kodexempel visas instansdata för en viss på PerformanceCounterCategory den lokala datorn. Den visar först en numrerad lista med PerformanceCounterCategory namn. När användaren har angett numret för en av kategorierna hämtar InstanceDataCollectionCollection exemplet för den PerformanceCounterCategory. Sedan konverteras samlingen som returneras av Values egenskapen till en matris med InstanceDataCollection objekt. Exemplet visar de instansdata som är associerade med var och InstanceData en av varje InstanceDataCollection.

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

Kommentarer

Klassen InstanceDataCollectionCollection representerar samlingen som returneras från ReadCategory metoden. Den här samlingen innehåller alla räknar- och instansdata. Samlingen innehåller ett InstanceDataCollection objekt för varje räknare. Varje InstanceDataCollection objekt innehåller prestandadata för alla räknare för den instansen. Data indexeras därför efter räknarnamn och sedan efter instansnamn.

Konstruktorer

Name Description
InstanceDataCollectionCollection()
Föråldrad.

Initierar en ny instans av InstanceDataCollectionCollection klassen.

Egenskaper

Name Description
Count

Hämtar antalet element som finns i instansen DictionaryBase .

(Ärvd från DictionaryBase)
Dictionary

Hämtar listan över element som finns i instansen DictionaryBase .

(Ärvd från DictionaryBase)
InnerHashtable

Hämtar listan över element som finns i instansen DictionaryBase .

(Ärvd från DictionaryBase)
Item[String]

Hämtar instansdata för den angivna räknaren.

Keys

Hämtar objekt- och räknarregisternycklarna för de objekt som är associerade med den här instansdatainsamlingen.

Values

Hämtar instansdatavärdena som utgör samlingen av instanser för räknaren.

Metoder

Name Description
Clear()

Rensar innehållet i instansen DictionaryBase .

(Ärvd från DictionaryBase)
Contains(String)

Avgör om en instansdatainsamling för den angivna räknaren (identifieras av ett av de indexerade InstanceDataCollection objekten) finns i samlingen.

CopyTo(Array, Int32)

Kopierar elementen DictionaryBase till en endimensionell Array vid det angivna indexet.

(Ärvd från DictionaryBase)
CopyTo(InstanceDataCollection[], Int32)

Kopierar en matris med InstanceDataCollection instanser till samlingen vid det angivna indexet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetEnumerator()

Returnerar en IDictionaryEnumerator som itererar genom instansen DictionaryBase .

(Ärvd från DictionaryBase)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnClear()

Utför ytterligare anpassade processer innan innehållet i instansen rensas DictionaryBase .

(Ärvd från DictionaryBase)
OnClearComplete()

Utför ytterligare anpassade processer när innehållet i instansen har rensats DictionaryBase .

(Ärvd från DictionaryBase)
OnGet(Object, Object)

Hämtar elementet med den angivna nyckeln och värdet i instansen DictionaryBase .

(Ärvd från DictionaryBase)
OnInsert(Object, Object)

Utför ytterligare anpassade processer innan du infogar ett nytt element i instansen DictionaryBase .

(Ärvd från DictionaryBase)
OnInsertComplete(Object, Object)

Utför ytterligare anpassade processer när du har infogat ett nytt element i instansen DictionaryBase .

(Ärvd från DictionaryBase)
OnRemove(Object, Object)

Utför ytterligare anpassade processer innan du tar bort ett element från instansen DictionaryBase .

(Ärvd från DictionaryBase)
OnRemoveComplete(Object, Object)

Utför ytterligare anpassade processer när du har tagit bort ett element från instansen DictionaryBase .

(Ärvd från DictionaryBase)
OnSet(Object, Object, Object)

Utför ytterligare anpassade processer innan du anger ett värde i instansen DictionaryBase .

(Ärvd från DictionaryBase)
OnSetComplete(Object, Object, Object)

Utför ytterligare anpassade processer när du har angett ett värde i instansen DictionaryBase .

(Ärvd från DictionaryBase)
OnValidate(Object, Object)

Utför ytterligare anpassade processer när elementet verifieras med den angivna nyckeln och värdet.

(Ärvd från DictionaryBase)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
ICollection.IsSynchronized

Hämtar ett värde som anger om åtkomsten till ett DictionaryBase objekt synkroniseras (trådsäker).

(Ärvd från DictionaryBase)
ICollection.SyncRoot

Hämtar ett objekt som kan användas för att synkronisera åtkomst till ett DictionaryBase objekt.

(Ärvd från DictionaryBase)
IDictionary.Add(Object, Object)

Lägger till ett element med den angivna nyckeln och värdet i DictionaryBase.

(Ärvd från DictionaryBase)
IDictionary.Contains(Object)

Avgör om innehåller DictionaryBase en specifik nyckel.

(Ärvd från DictionaryBase)
IDictionary.IsFixedSize

Hämtar ett värde som anger om ett DictionaryBase objekt har en fast storlek.

(Ärvd från DictionaryBase)
IDictionary.IsReadOnly

Hämtar ett värde som anger om ett DictionaryBase objekt är skrivskyddat.

(Ärvd från DictionaryBase)
IDictionary.Item[Object]

Hämtar eller anger värdet som är associerat med den angivna nyckeln.

(Ärvd från DictionaryBase)
IDictionary.Keys

Hämtar ett ICollection objekt som innehåller nycklarna i objektet DictionaryBase .

(Ärvd från DictionaryBase)
IDictionary.Remove(Object)

Tar bort elementet med den angivna nyckeln från DictionaryBase.

(Ärvd från DictionaryBase)
IDictionary.Values

Hämtar ett ICollection objekt som innehåller värdena i objektet DictionaryBase .

(Ärvd från DictionaryBase)
IEnumerable.GetEnumerator()

Returnerar en IEnumerator som itererar via DictionaryBase.

(Ärvd från DictionaryBase)

Tilläggsmetoder

Name Description
AsParallel(IEnumerable)

Möjliggör parallellisering av en fråga.

AsQueryable(IEnumerable)

Konverterar en IEnumerable till en IQueryable.

Cast<TResult>(IEnumerable)

Omvandlar elementen i en IEnumerable till den angivna typen.

OfType<TResult>(IEnumerable)

Filtrerar elementen i en IEnumerable baserat på en angiven typ.

Gäller för

Se även