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

Definição

Converte os elementos no List<T> atual para outro tipo e retorna uma lista contendo os elementos convertidos.

C#
public System.Collections.Generic.List<TOutput> ConvertAll<TOutput> (Converter<T,TOutput> converter);

Parâmetros de tipo

TOutput

O tipo dos elementos da matriz de destino.

Parâmetros

converter
Converter<T,TOutput>

Um delegado Converter<TInput,TOutput> que converte cada elemento de um tipo em outro tipo.

Retornos

List<TOutput>

Um List<T> do tipo de destino que contém os elementos convertidos do List<T> atual.

Exceções

converter é null.

Exemplos

O exemplo a seguir define um método chamado PointFToPoint que converte uma PointF estrutura em uma Point estrutura . Em seguida, o exemplo cria um List<T> de PointF estruturas, cria um Converter\<PointF, Point> delegado (Converter(Of PointF, Point) no Visual Basic) para representar o PointFToPoint método e passa o delegado para o ConvertAll método . O ConvertAll método passa cada elemento da lista de entrada para o PointFToPoint método e coloca os elementos convertidos em uma nova lista de Point estruturas. Ambas as listas são exibidas.

C#
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}
 */

Comentários

O Converter<TInput,TOutput> é um delegado para um método que converte um objeto no tipo de destino. Os elementos do atual List<T> são passados individualmente para o Converter<TInput,TOutput> delegado e os elementos convertidos são salvos no novo List<T>.

O atual List<T> permanece inalterado.

Esse método é uma operação O(n), em que n é Count.

Aplica-se a

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Confira também