Číst v angličtině

Sdílet prostřednictvím


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

Definice

Převede prvky v proudu List<T> na jiný typ a vrátí seznam obsahující převedené prvky.

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

Parametry typu

TOutput

Typ prvků cílového pole.

Parametry

converter
Converter<T,TOutput>

Delegát Converter<TInput,TOutput> , který převádí každý prvek z jednoho typu na jiný typ.

Návraty

List<TOutput>

A List<T> cílového typu obsahujícího převedené prvky z aktuálního List<T>objektu .

Výjimky

converter je null.

Příklady

Následující příklad definuje metodu s názvem PointFToPoint , která převede PointF strukturu na Point strukturu. Příklad pak vytvoří List<T>PointF strukturu, vytvoří Converter\<PointF, Point> delegáta (Converter(Of PointF, Point) v jazyce Visual Basic) představující metodu PointFToPoint a předá delegáta ConvertAll metodě. Metoda ConvertAll předá každý prvek vstupního seznamu PointFToPoint metodě a převede převedené prvky do nového seznamu Point struktur. Zobrazí se oba seznamy.

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

Poznámky

Je Converter<TInput,TOutput> delegátem na metodu, která převede objekt na cílový typ. Prvky aktuálního List<T> jsou jednotlivě předány delegátu Converter<TInput,TOutput> a převedené prvky jsou uloženy v nové List<T>.

Aktuální List<T> zůstane beze změny.

Tato metoda je operace O(n), kde n je Count.

Platí pro

Viz také