List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) 方法

定義

將目前 List<T> 中的項目轉換成另一個類型,並傳回包含轉換過的項目清單。

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

類型參數

TOutput

目標陣列項目的類型。

參數

converter
Converter<T,TOutput>

Converter<TInput,TOutput> 委派,可將某一個類型的每一個項目轉換成另一個類型。

傳回

List<TOutput>

目標類型的 List<T>,包含從目前 List<T> 中轉換過的項目。

例外狀況

converternull

範例

下列範例會定義名為 PointFToPoint 的方法,將 PointF 結構轉換成 結構 Point 。 然後,此範例會 List<T> 建立 結構的 PointF 、在Visual Basic) 中建立 Converter\<PointF, Point> 委派 (Converter(Of PointF, Point) 來表示 PointFToPoint 方法,並將委派傳遞至 ConvertAll 方法。 方法 ConvertAll 會將輸入清單的每個項目傳遞至 PointFToPoint 方法,並將已轉換的專案放入新的結構清單 Point 。 這兩個清單都會顯示。

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

備註

Converter<TInput,TOutput>是方法的委派,可將對象轉換成目標型別。 目前 List<T> 的專案會個別傳遞至 Converter<TInput,TOutput> 委派,而且轉換的專案會儲存在新的 List<T>中。

目前的 List<T> 會保持不變。

這個方法是 o (n) 作業,其中 nCount

適用於

產品 版本
.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

另請參閱