InstanceDataCollectionCollection 클래스

정의

InstanceDataCollection 개체의 강력한 형식의 컬렉션을 제공합니다.Provides a strongly typed collection of InstanceDataCollection objects.

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

예제

다음 코드 예제에서는 로컬 컴퓨터에 있는 특정 PerformanceCounterCategory의 인스턴스 데이터를 표시 합니다.The following code example displays the instance data for a particular PerformanceCounterCategory on the local computer. 먼저 번호가 매겨진 PerformanceCounterCategory 이름 목록을 표시 합니다.It first displays a numbered list of PerformanceCounterCategory names. 사용자가 범주 중 하나의 숫자를 입력 하면이 예제에서는 해당 PerformanceCounterCategory에 대 한 InstanceDataCollectionCollection를 가져옵니다.After the user enters the number of one of the categories, the example gets the InstanceDataCollectionCollection for that PerformanceCounterCategory. 그런 다음 Values 속성이 반환 하는 컬렉션을 InstanceDataCollection 개체의 배열로 변환 합니다.It then converts the collection returned by the Values property to an array of InstanceDataCollection objects. 이 예에서는 각 InstanceDataCollection의 각 InstanceData와 관련 된 인스턴스 데이터를 표시 합니다.The example displays the instance data associated with each InstanceData of each 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

설명

InstanceDataCollectionCollection 클래스는 ReadCategory 메서드에서 반환 된 컬렉션을 나타냅니다.The InstanceDataCollectionCollection class represents the collection returned from the ReadCategory method. 이 컬렉션의 모든 카운터 및 인스턴스 데이터를 포함합니다.This collection contains all the counter and instance data. 컬렉션에는 각 카운터에 대 한 InstanceDataCollection 개체가 포함 되어 있습니다.The collection contains an InstanceDataCollection object for each counter. InstanceDataCollection 개체는 해당 인스턴스의 모든 카운터에 대 한 성능 데이터를 포함 합니다.Each InstanceDataCollection object contains the performance data for all counters for that instance. 따라서 데이터는 카운터 이름 후 인스턴스 이름으로 인덱싱됩니다.Thus, the data is indexed by counter name and then by instance name.

생성자

InstanceDataCollectionCollection()

InstanceDataCollectionCollection 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the InstanceDataCollectionCollection class.

속성

Count

DictionaryBase 인스턴스에 포함된 요소의 수를 가져옵니다.Gets the number of elements contained in the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
Dictionary

DictionaryBase 인스턴스에 포함된 요소의 목록을 가져옵니다.Gets the list of elements contained in the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
InnerHashtable

DictionaryBase 인스턴스에 포함된 요소의 목록을 가져옵니다.Gets the list of elements contained in the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
Item[String]

지정한 카운터의 인스턴스 데이터를 가져옵니다.Gets the instance data for the specified counter.

Keys

해당 개체 및 이 인스턴스 데이터 컬렉션과 관련된 개체의 카운터 레지스트리 키를 가져옵니다.Gets the object and counter registry keys for the objects associated with this instance data collection.

Values

카운터의 인스턴스 컬렉션을 구성하는 인스턴스 데이터 값을 가져옵니다.Gets the instance data values that comprise the collection of instances for the counter.

메서드

Clear()

DictionaryBase 인스턴스의 콘텐츠를 지웁니다.Clears the contents of the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
Contains(String)

인덱싱된 InstanceDataCollection 개체 중 하나로 식별되는 지정된 카운터의 인스턴스 데이터 컬렉션이 해당 컬렉션에 존재하는지 여부를 확인합니다.Determines whether an instance data collection for the specified counter (identified by one of the indexed InstanceDataCollection objects) exists in the collection.

CopyTo(Array, Int32)

지정한 인덱스에서 1차원 DictionaryBaseArray 엔트리를 복사합니다.Copies the DictionaryBase elements to a one-dimensional Array at the specified index.

(다음에서 상속됨 DictionaryBase)
CopyTo(InstanceDataCollection[], Int32)

컬렉션의 지정된 인덱스에 InstanceDataCollection 인스턴스의 배열을 복사합니다.Copies an array of InstanceDataCollection instances to the collection, at the specified index.

Equals(Object)

지정한 개체가 현재 개체와 같은지를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetEnumerator()

IDictionaryEnumerator 인스턴스를 반복하는 DictionaryBase를 반환합니다.Returns an IDictionaryEnumerator that iterates through the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
OnClear()

DictionaryBase 인스턴스의 내용을 지우기 전에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes before clearing the contents of the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
OnClearComplete()

DictionaryBase 인스턴스의 내용을 지운 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes after clearing the contents of the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
OnGet(Object, Object)

DictionaryBase 인스턴스에서 지정한 키와 값이 있는 요소를 가져옵니다.Gets the element with the specified key and value in the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
OnInsert(Object, Object)

DictionaryBase 인스턴스에 새 요소를 삽입하기 전에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes before inserting a new element into the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
OnInsertComplete(Object, Object)

DictionaryBase 인스턴스에 새 요소를 삽입한 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes after inserting a new element into the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
OnRemove(Object, Object)

DictionaryBase 인스턴스에서 요소를 제거하기 전에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes before removing an element from the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
OnRemoveComplete(Object, Object)

DictionaryBase 인스턴스에서 요소를 제거한 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes after removing an element from the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
OnSet(Object, Object, Object)

DictionaryBase 인스턴스에 값을 설정하기 전에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes before setting a value in the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
OnSetComplete(Object, Object, Object)

DictionaryBase 인스턴스에 값을 설정한 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes after setting a value in the DictionaryBase instance.

(다음에서 상속됨 DictionaryBase)
OnValidate(Object, Object)

지정한 키와 값을 가지는 요소의 유효성을 검사할 때 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes when validating the element with the specified key and value.

(다음에서 상속됨 DictionaryBase)
ToString()

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

ICollection.IsSynchronized

DictionaryBase 개체에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether access to a DictionaryBase object is synchronized (thread safe).

(다음에서 상속됨 DictionaryBase)
ICollection.SyncRoot

DictionaryBase 개체에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.Gets an object that can be used to synchronize access to a DictionaryBase object.

(다음에서 상속됨 DictionaryBase)
IDictionary.Add(Object, Object)

지정한 키와 값을 가지는 요소를 DictionaryBase에 추가합니다.Adds an element with the specified key and value into the DictionaryBase.

(다음에서 상속됨 DictionaryBase)
IDictionary.Contains(Object)

DictionaryBase에 특정 키가 들어 있는지 여부를 확인합니다.Determines whether the DictionaryBase contains a specific key.

(다음에서 상속됨 DictionaryBase)
IDictionary.IsFixedSize

DictionaryBase 개체의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether a DictionaryBase object has a fixed size.

(다음에서 상속됨 DictionaryBase)
IDictionary.IsReadOnly

DictionaryBase 개체가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether a DictionaryBase object is read-only.

(다음에서 상속됨 DictionaryBase)
IDictionary.Item[Object]

지정된 키와 연결된 값을 가져오거나 설정합니다.Gets or sets the value associated with the specified key.

(다음에서 상속됨 DictionaryBase)
IDictionary.Keys

ICollection 개체의 키가 포함된 DictionaryBase 개체를 가져옵니다.Gets an ICollection object containing the keys in the DictionaryBase object.

(다음에서 상속됨 DictionaryBase)
IDictionary.Remove(Object)

DictionaryBase에서 키가 지정된 요소를 제거합니다.Removes the element with the specified key from the DictionaryBase.

(다음에서 상속됨 DictionaryBase)
IDictionary.Values

ICollection 개체의 값이 포함된 DictionaryBase 개체를 가져옵니다.Gets an ICollection object containing the values in the DictionaryBase object.

(다음에서 상속됨 DictionaryBase)
IEnumerable.GetEnumerator()

IEnumerator를 반복하는 DictionaryBase를 반환합니다.Returns an IEnumerator that iterates through the DictionaryBase.

(다음에서 상속됨 DictionaryBase)

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.Converts an IEnumerable to an IQueryable.

적용 대상

추가 정보