singrdk/base/Applications/Runtime/Full/System/Collections/IDictionaryEnumerator.cs

80 lines
3.3 KiB
C#

// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//============================================================
//
// Interface: IDictionaryEnumerator
//
// Purpose: Base interface for dictionary enumerators.
//
//===========================================================
namespace System.Collections
{
using System;
// This interface represents an enumerator that allows sequential access to the
// elements of a dictionary. Upon creation, an enumerator is conceptually
// positioned before the first element of the enumeration. The first call to the
// MoveNext method brings the first element of the enumeration into view,
// and each successive call to MoveNext brings the next element into
// view until MoveNext returns false, indicating that there are no more
// elements to enumerate. Following each call to MoveNext, the
// Key and Value methods are used to obtain the key and
// value of the element currently in view. The values returned by calls to
// Key and Value are undefined before the first call to
// MoveNext and following a call to MoveNext that returned false.
// Enumerators are typically used in while loops of the form
//
// IDictionaryEnumerator e = ...;
// while (e.MoveNext()) {
// Object key = e.Key;
// Object value = e.Value;
// ...
// }
//
// The IDictionaryEnumerator interface extends the IEnumerator
// interface and can thus be used as a regular enumerator. The Current
// method of an IDictionaryEnumerator returns a DictionaryEntry containing
// the current key and value pair. However, the GetEntry method will
// return the same DictionaryEntry and avoids boxing the DictionaryEntry (boxing
// is somewhat expensive).
//
//| <include path='docs/doc[@for="IDictionaryEnumerator"]/*' />
public interface IDictionaryEnumerator : IEnumerator
{
// Returns the key of the current element of the enumeration. The returned
// value is undefined before the first call to GetNext and following
// a call to GetNext that returned false. Multiple calls to
// GetKey with no intervening calls to GetNext will return
// the same object.
//
//| <include path='docs/doc[@for="IDictionaryEnumerator.Key"]/*' />
Object Key {
get;
}
// Returns the value of the current element of the enumeration. The
// returned value is undefined before the first call to GetNext and
// following a call to GetNext that returned false. Multiple calls
// to GetValue with no intervening calls to GetNext will
// return the same object.
//
//| <include path='docs/doc[@for="IDictionaryEnumerator.Value"]/*' />
Object Value {
get;
}
// GetBlock will copy dictionary values into the given Array. It will either
// fill up the array, or if there aren't enough elements, it will
// copy as much as possible into the Array. The number of elements
// copied is returned.
//
//| <include path='docs/doc[@for="IDictionaryEnumerator.Entry"]/*' />
DictionaryEntry Entry {
get;
}
}
}