IEnumerableとは? わかりやすく解説

IEnumerable インターフェイス

ジェネリック コレクション対す単純な反復処理サポートする列挙子を公開します

名前空間: System.Collections
アセンブリ: 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
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A") */
 
public interface IEnumerable
ComVisibleAttribute(true) 
GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A") 
public interface IEnumerable
解説解説
使用例使用例

カスタム コレクションでの 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
 * 
 */
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
IEnumerable メンバ
System.Collections 名前空間
IEnumerator
System.Collections.Generic.IEnumerable

IEnumerable ジェネリック インターフェイス

メモ : このインターフェイスは、.NET Framework version 2.0新しく追加されたものです。

指定した型のコレクション対す単純な反復処理サポートする列挙子を公開します

名前空間: System.Collections.Generic
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Interface IEnumerable(Of
 T)
    Inherits IEnumerable
Dim instance As IEnumerable(Of
 T)
public interface IEnumerable<T> : IEnumerable
generic<typename T>
public interface class IEnumerable : IEnumerable
J# では、ジェネリックな型およびメソッド使用できますが、新規に宣言することはできません。
JScript では、ジェネリックな型およびメソッド使用できません。

型パラメータ

T

列挙するオブジェクトの型。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
IEnumerable メンバ
System.Collections.Generic 名前空間
IEnumerator
System.Collections 名前空間

IEnumerable メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド GetEnumerator コレクション反復処理する列挙子を返します
参照参照

関連項目

IEnumerable ジェネリック インターフェイス
System.Collections.Generic 名前空間
IEnumerator
System.Collections 名前空間

IEnumerable メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド GetEnumerator コレクション反復処理する列挙子を返します
参照参照

関連項目

IEnumerable インターフェイス
System.Collections 名前空間
IEnumerator
System.Collections.Generic.IEnumerable

IEnumerable メンバ


IEnumerable メンバ



このページでは「.NET Framework クラス ライブラリ リファレンス」からIEnumerableを検索した結果を表示しています。
Weblioに収録されているすべての辞書からIEnumerableを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からIEnumerableを検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「IEnumerable」の関連用語

IEnumerableのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



IEnumerableのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS