ConvertAll(TOutput) Method

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


Converts the elements in the current List<T> to another type, and returns a list containing the converted elements.

Namespace:   System.Collections.Generic
Assembly:  mscorlib (in mscorlib.dll)

public List<TOutput> ConvertAll<TOutput>(
	Converter<T, TOutput> converter


Type: System.Converter<T, TOutput>

A Converter<TInput, TOutput> delegate that converts each element from one type to another type.

Return Value

Type: System.Collections.Generic.List<TOutput>

A List<T> of the target type containing the converted elements from the current List<T>.

Type Parameters


The type of the elements of the target array.

Exception Condition

converter is null.

The Converter<TInput, TOutput> is a delegate to a method that converts an object to the target type. The elements of the current List<T> are individually passed to the Converter<TInput, TOutput> delegate, and the converted elements are saved in the new List<T>.

The current List<T> remains unchanged.

This method is an O(n) operation, where n is Count.

The following example defines a method named PointFToPoint that converts a PointF structure to a Point structure. The example then creates a List<T> of PointF structures, creates a Converter<PointF, Point> delegate (Converter(Of PointF, Point) in Visual Basic) to represent the PointFToPoint method, and passes the delegate to the ConvertAll<TOutput> method. The ConvertAll<TOutput> method passes each element of the input list to the PointFToPoint method and puts the converted elements into a new list of Point structures. Both lists are displayed.

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));

        foreach( PointF p in lpf )

        List<Point> lp = lpf.ConvertAll( 
            new Converter<PointF, Point>(PointFToPoint));

        foreach( Point p in lp )

    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}


.NET Framework
Available since 2.0
Return to top
© 2015 Microsoft