IEnumerable インターフェイス
アセンブリ: mscorlib (mscorlib.dll 内)

<ComVisibleAttribute(True)> _ <GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A")> _ Public Interface IEnumerable
[ComVisibleAttribute(true)] [GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A")] public interface IEnumerable
[ComVisibleAttribute(true)] [GuidAttribute(L"496B0ABE-CDEE-11d3-88E8-00902754C43A")] public interface class IEnumerable

このインターフェイスのジェネリック バージョンについては、「System.Collections.Generic.IEnumerable」を参照してください。
実装時の注意 Microsoft Visual Basic の foreach セマンティクスをサポートするには、IEnumerable を実装する必要があります。COM クラスで列挙子を使用できるようにする場合も、このインターフェイスを実装します。
カスタム コレクションでの IEnumerable インターフェイスと IEnumerator インターフェイスの実装を次のコード例に示します。この例では、これらのインターフェイスのメンバが明示的に呼び出されていませんが、foreach (Visual Basic では for each) の使用によるコレクションの反復処理をサポートするために実装されています。
Imports System Imports System.Collections Public Class Person Public Sub New(ByVal fName As String, ByVal lName As String) Me.firstName = fName Me.lastName = lName End Sub Public firstName As String Public lastName As String End Class Public Class People Implements IEnumerable Private _people() As Person Public Sub New(ByVal pArray() As Person) _people = New Person(pArray.Length - 1) {} Dim i As Integer For i = 0 To pArray.Length - 1 _people(i) = pArray(i) Next i End Sub Public Function GetEnumerator() As IEnumerator _ Implements IEnumerable.GetEnumerator Return New PeopleEnum(_people) End Function End Class Public Class PeopleEnum Implements IEnumerator Public _people() As Person ' Enumerators are positioned before the first element ' until the first MoveNext() call. Dim position As Integer = -1 Public Sub New(ByVal list() As Person) _people = list End Sub Public Function MoveNext() As Boolean Implements IEnumerator.MoveNext position = position + 1 Return (position < _people.Length) End Function Public Sub Reset() Implements IEnumerator.Reset position = -1 End Sub Public ReadOnly Property Current() As Object Implements IEnumerator.Current Get Try Return _people(position) Catch ex As IndexOutOfRangeException Throw New InvalidOperationException() End Try End Get End Property End Class Class App Shared Sub Main() Dim peopleArray() As Person = { _ New Person("John", "Smith"), _ New Person("Jim", "Johnson"), _ New Person("Sue", "Rabon")} Dim peopleList As New People(peopleArray) Dim p As Person For Each p In peopleList Console.WriteLine(p.firstName + " " + p.lastName) Next End Sub End Class ' This code produces output similar to the following: ' ' John Smith ' Jim Johnson ' Sue Rabon
using System; using System.Collections; public class Person { public Person(string fName, string lName) { this.firstName = fName; this.lastName = lName; } public string firstName; public string lastName; } public class People : IEnumerable { private Person[] _people; public People(Person[] pArray) { _people = new Person[pArray.Length]; for (int i = 0; i < pArray.Length; i++) { _people[i] = pArray[i]; } } public IEnumerator GetEnumerator() { return new PeopleEnum(_people); } } public class PeopleEnum : IEnumerator { public Person[] _people; // Enumerators are positioned before the first element // until the first MoveNext() call. int position = -1; public PeopleEnum(Person[] list) { _people = list; } public bool MoveNext() { position++; return (position < _people.Length); } public void Reset() { position = -1; } public object Current { get { try { return _people[position]; } catch (IndexOutOfRangeException) { throw new InvalidOperationException(); } } } } class App { static void Main() { Person[] peopleArray = new Person[3] { new Person("John", "Smith"), new Person("Jim", "Johnson"), new Person("Sue", "Rabon"), }; People peopleList = new People(peopleArray); foreach (Person p in peopleList) Console.WriteLine(p.firstName + " " + p.lastName); } } /* This code produces output similar to the following: * * John Smith * Jim Johnson * Sue Rabon * */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


IEnumerable ジェネリック インターフェイス
アセンブリ: mscorlib (mscorlib.dll 内)



Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


IEnumerable メソッド


関連項目
IEnumerable ジェネリック インターフェイスSystem.Collections.Generic 名前空間
IEnumerator
System.Collections 名前空間
IEnumerable メソッド


関連項目
IEnumerable インターフェイスSystem.Collections 名前空間
IEnumerator
System.Collections.Generic.IEnumerable
IEnumerable メンバ
指定した型のコレクションに対する単純な反復処理をサポートする列挙子を公開します。
IEnumerable ジェネリック型で公開されるメンバを以下の表に示します。


関連項目
IEnumerable ジェネリック インターフェイスSystem.Collections.Generic 名前空間
IEnumerator
System.Collections 名前空間
IEnumerable メンバ
- IEnumerableのページへのリンク