List<T>.ConvertAll(Converter<T,TOutput>) List<T>.ConvertAll(Converter<T,TOutput>) List<T>.ConvertAll(Converter<T,TOutput>) List<T>.ConvertAll(Converter<T,TOutput>) Method

Определение

Преобразует элементы текущего списка List<T> в другой тип и возвращает список преобразованных элементов.Converts the elements in the current List<T> to another type, and returns a list containing the converted elements.

public:
generic <typename TOutput>
 System::Collections::Generic::List<TOutput> ^ ConvertAll(Converter<T, TOutput> ^ converter);
public System.Collections.Generic.List<TOutput> ConvertAll<TOutput> (Converter<T,TOutput> converter);
member this.ConvertAll : Converter<'T, 'Output> -> System.Collections.Generic.List<'Output>
Public Function ConvertAll(Of TOutput) (converter As Converter(Of T, TOutput)) As List(Of TOutput)

Параметры типа

TOutput

Тип элементов массива назначения.The type of the elements of the target array.

Параметры

converter
Converter<T,TOutput>

Делегат Converter<TInput,TOutput>, преобразующий каждый элемент из одного типа в другой.A Converter<TInput,TOutput> delegate that converts each element from one type to another type.

Возвраты

List<TOutput>

Список List<T> с элементами конечного типа, преобразованными из текущего списка List<T>.A List<T> of the target type containing the converted elements from the current List<T>.

Исключения

Примеры

В следующем примере определяется метод с именем PointFToPoint , который PointF преобразует структуру в Point структуру.The following example defines a method named PointFToPoint that converts a PointF structure to a Point structure. Затем в List<T> примере создается PointF структура, создается Converter\<PointF, Point> Converter(Of PointF, Point) делегат(ConvertAll в Visual Basic), который представляет метод,ипередаетделегатвметод.PointFToPointThe example then creates a List<T> of PointF structures, creates a Converter\<PointF, Point> delegate (Converter(Of PointF, Point) in Visual Basic) to represent the PointFToPoint method, and passes the delegate to the ConvertAll method. Метод передает каждый элемент входного списка PointFToPoint в метод и помещает преобразованные элементы Point в новый список структур. ConvertAllThe ConvertAll method passes each element of the input list to the PointFToPoint method and puts the converted elements into a new list of Point structures. Отобразятся оба списка.Both lists are displayed.

#using <System.Drawing.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Collections::Generic;

Point PointFToPoint(PointF pf)
{
    return Point((int) pf.X, (int) pf.Y);
};

void main()
{
    List<PointF>^ lpf = gcnew List<PointF>();

    lpf->Add(PointF(27.8F, 32.62F));
    lpf->Add(PointF(99.3F, 147.273F));
    lpf->Add(PointF(7.5F, 1412.2F));

    Console::WriteLine();
    for each(PointF p in lpf)
    {
        Console::WriteLine(p);
    }

    List<Point>^ lp = 
        lpf->ConvertAll<Point>(
            gcnew Converter<PointF, Point>(PointFToPoint)
        );

    Console::WriteLine();
    for each(Point p in lp)
    {
        Console::WriteLine(p);
    }
}

/* This code example produces the following output:

{X=27.8, Y=32.62}
{X=99.3, Y=147.273}
{X=7.5, Y=1412.2}

{X=27,Y=32}
{X=99,Y=147}
{X=7,Y=1412}
 */
using System;
using System.Drawing;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<PointF> lpf = new List<PointF>();

        lpf.Add(new PointF(27.8F, 32.62F));
        lpf.Add(new PointF(99.3F, 147.273F));
        lpf.Add(new PointF(7.5F, 1412.2F));

        Console.WriteLine();
        foreach( PointF p in lpf )
        {
            Console.WriteLine(p);
        }

        List<Point> lp = lpf.ConvertAll( 
            new Converter<PointF, Point>(PointFToPoint));

        Console.WriteLine();
        foreach( Point p in lp )
        {
            Console.WriteLine(p);
        }
    }

    public static Point PointFToPoint(PointF pf)
    {
        return new Point(((int) pf.X), ((int) pf.Y));
    }
}

/* This code example produces the following output:

{X=27.8, Y=32.62}
{X=99.3, Y=147.273}
{X=7.5, Y=1412.2}

{X=27,Y=32}
{X=99,Y=147}
{X=7,Y=1412}
 */
Imports System.Drawing
Imports System.Collections.Generic

Public Class Example

    Public Shared Sub Main()

        Dim lpf As New List(Of PointF)

        lpf.Add(New PointF(27.8, 32.62))
        lpf.Add(New PointF(99.3, 147.273))
        lpf.Add(New PointF(7.5, 1412.2))

        Console.WriteLine()
        For Each p As PointF In lpf
            Console.WriteLine(p)
        Next

        Dim lp As List(Of Point) = lpf.ConvertAll( _
            New Converter(Of PointF, Point)(AddressOf PointFToPoint))

        Console.WriteLine()
        For Each p As Point In lp
            Console.WriteLine(p)
        Next

    End Sub

    Public Shared Function PointFToPoint(ByVal pf As PointF) _
        As Point

        Return New Point(CInt(pf.X), CInt(pf.Y))
    End Function
End Class

' This code example produces the following output:
'
'{X=27.8, Y=32.62}
'{X=99.3, Y=147.273}
'{X=7.5, Y=1412.2}
'
'{X=28,Y=33}
'{X=99,Y=147}
'{X=8,Y=1412}

Комментарии

Converter<TInput,TOutput> — Это делегат метода, который преобразует объект в целевой тип.The Converter<TInput,TOutput> is a delegate to a method that converts an object to the target type. Элементы текущего List<T> объекта передаются Converter<TInput,TOutput> в делегат по отдельности, а преобразованные элементы сохраняются в новом List<T>.The elements of the current List<T> are individually passed to the Converter<TInput,TOutput> delegate, and the converted elements are saved in the new List<T>.

Текущий List<T> объект остается без изменений.The current List<T> remains unchanged.

Этот метод является операцией O (n), где nCount.This method is an O(n) operation, where n is Count.

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

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