List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) Méthode

Définition

Convertit les éléments en cours List<T> en un autre type et retourne une liste contenant les éléments convertis.

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)

Paramètres de type

TOutput

Type des éléments du tableau cible.

Paramètres

converter
Converter<T,TOutput>

Délégué Converter<TInput,TOutput> qui convertit chaque élément d’un type en un autre type.

Retours

List<TOutput>

Type List<T> cible contenant les éléments convertis à partir de l’actuel List<T>.

Exceptions

converter a la valeur null.

Exemples

L’exemple suivant définit une méthode nommée PointFToPoint qui convertit une PointF structure en structure Point . L’exemple crée ensuite un délégué List<T> de structures PointF, crée un délégué Converter\<PointF, Point> (Converter(Of PointF, Point) dans Visual Basic) pour représenter la méthode PointFToPoint et transmet le délégué à la méthode ConvertAll. La ConvertAll méthode transmet chaque élément de la liste d’entrée à la PointFToPoint méthode et place les éléments convertis dans une nouvelle liste de Point structures. Les deux listes sont affichées.

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}

Remarques

Il Converter<TInput,TOutput> s’agit d’un délégué à une méthode qui convertit un objet en type cible. Les éléments du courant List<T> sont transmis individuellement au Converter<TInput,TOutput> délégué, et les éléments convertis sont enregistrés dans le nouveau List<T>.

Le courant List<T> reste inchangé.

Cette méthode est une opération O(n), où n est Count.

S’applique à

Voir aussi