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

Definitie

Converteert de elementen in het huidige List<T> naar een ander type en retourneert een lijst met de geconverteerde elementen.

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)

Type parameters

TOutput

Het type van de elementen van de doelmatrix.

Parameters

converter
Converter<T,TOutput>

Een Converter<TInput,TOutput> gemachtigde die elk element van het ene type naar een ander type converteert.

Retouren

List<TOutput>

Een List<T> van het doeltype dat de geconverteerde elementen van de huidige List<T>bevat.

Uitzonderingen

converter is null.

Voorbeelden

In het volgende voorbeeld wordt een methode gedefinieerd die PointFToPoint een PointF structuur converteert naar een Point structuur. Het voorbeeld maakt vervolgens een List<T> van PointF structuren, maakt een Converter\<PointF, Point> gedelegeerde (Converter(Of PointF, Point) in Visual Basic) om de methode PointFToPoint weer te geven en geeft de gemachtigde door aan de methode ConvertAll. De ConvertAll methode geeft elk element van de invoerlijst door aan de PointFToPoint methode en plaatst de geconverteerde elementen in een nieuwe lijst Point met structuren. Beide lijsten worden weergegeven.

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}

Opmerkingen

Dit Converter<TInput,TOutput> is een gemachtigde naar een methode waarmee een object wordt geconverteerd naar het doeltype. De elementen van de huidige List<T> worden afzonderlijk doorgegeven aan de Converter<TInput,TOutput> gemachtigde en de geconverteerde elementen worden opgeslagen in de nieuwe List<T>.

De huidige List<T> blijft ongewijzigd.

Deze methode is een O(n)-bewerking, waarbij n is Count.

Van toepassing op

Zie ook