List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) 메서드

정의

현재 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>.

예외

converternull인 경우converter is null.

예제

다음 예제에서는 PointF 구조체를 Point 구조체로 변환 하는 PointFToPoint 라는 메서드를 정의 합니다.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) Visual Basic의)를 나타내는 PointFToPoint 메서드를 대리자를 전달 하 고는 ConvertAll 메서드.The 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. ConvertAll 메서드는 입력 목록의 각 요소에 전달 합니다 PointFToPoint 메서드를 새 목록으로 변환 된 요소를 배치 하 고 Point 구조.The 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.

적용 대상

추가 정보