ObjectResult<T>.GetEnumerator ObjectResult<T>.GetEnumerator ObjectResult<T>.GetEnumerator ObjectResult<T>.GetEnumerator Method

Определение

Возвращает перечислитель для перебора результатов запроса.Returns an enumerator that iterates through the query results.

public:
 virtual System::Collections::Generic::IEnumerator<T> ^ GetEnumerator();
public System.Collections.Generic.IEnumerator<T> GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.Generic.IEnumerator<'T>
override this.GetEnumerator : unit -> System.Collections.Generic.IEnumerator<'T>
Public Function GetEnumerator () As IEnumerator(Of T)

Возвраты

Перечислитель, проходящий по результатам запроса.An enumerator that iterates through the query results.

Реализации

Примеры

Пример в этом разделе основан на модели AdventureWorks Sales.The example in this topic is based on the AdventureWorks Sales Model. В примере возвращается ObjectResult<T> из метода Execute.The example returns an ObjectResult<T> from the Execute method. Затем возвращается перечислитель, и выполняется проход по результатам запроса.Then it gets an enumerator and iterates through the query results. Наконец, он освобождает перечислитель и объект ObjectResult<T>.At the end, it releases the enumerator and the ObjectResult<T> object.

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    ObjectSet<Product> query = context.Products;
    ObjectResult<Product> queryResults = null;

    System.Collections.IEnumerator enumerator = null;
    try
    {
        queryResults = query.Execute(MergeOption.AppendOnly);

        // Get the enumerator.
        enumerator = ((System.Collections.IEnumerable)queryResults).GetEnumerator();

        // Iterate through the query results.
        while (enumerator.MoveNext())
        {
            Product product = (Product)enumerator.Current;
            Console.WriteLine("{0}", product.Name);
        }
        // Dispose the enumerator
        ((IDisposable)enumerator).Dispose();
    }
    finally
    {
        // Dispose the query results and the enumerator.
        if (queryResults != null)
        {
            queryResults.Dispose();
        }
        if (enumerator != null)
        {
            ((IDisposable)enumerator).Dispose();
        }
    }
}
Using context As New AdventureWorksEntities()
    Dim query As ObjectSet(Of Product) = context.Products
    Dim queryResults As ObjectResult(Of Product) = Nothing

    Dim enumerator As System.Collections.IEnumerator = Nothing
    Try
        queryResults = query.Execute(MergeOption.AppendOnly)

        ' Get the enumerator. 
        enumerator = DirectCast(queryResults, System.Collections.IEnumerable).GetEnumerator()

        ' Iterate through the query results. 
        While enumerator.MoveNext()
            Dim product As Product = DirectCast(enumerator.Current, Product)
            Console.WriteLine("{0}", product.Name)
        End While
        ' Dispose the enumerator 
        DirectCast(enumerator, IDisposable).Dispose()
    Finally
        ' Dispose the query results and the enumerator. 
        If queryResults IsNot Nothing Then
            queryResults.Dispose()
        End If
        If enumerator IsNot Nothing Then
            DirectCast(enumerator, IDisposable).Dispose()
        End If
    End Try
End Using

Комментарии

Когда перечислитель больше не нужен, его следует удалить.The enumerator must be disposed when no longer needed. С помощью foreach инструкции (For Each в Visual Basic) гарантирует, что перечислитель будет правильно удален по завершении прохода по результатам.Using the foreach statement (For Each in Visual Basic) ensures that the enumerator is correctly disposed when iteration over the results is complete.

Применяется к

Дополнительно