Array.ConvertAll<TInput, TOutput> Method
Converts an array of one type to an array of another type.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
public static TOutput[] ConvertAll<TInput, TOutput>( TInput[] array, Converter<TInput, TOutput> converter )
Type Parameters
- TInput
The type of the elements of the source array.
- TOutput
The type of the elements of the target array.
Parameters
- array
- Type: TInput[]
The one-dimensional, zero-based Array to convert to a target type.
- converter
- Type: System.Converter<TInput, TOutput>
A Converter<TInput, TOutput> that converts each element from one type to another type.
Return Value
Type: TOutput[]An array of the target type containing the converted elements from the source array.
| Exception | Condition |
|---|---|
| ArgumentNullException | array is null. -or- converter is null. |
The Converter<TInput, TOutput> is a delegate to a method that converts an object to the target type. The elements of array are individually passed to the Converter<TInput, TOutput>, and the converted elements are saved in the new array.
The source array remains unchanged.
This method is an O(n) operation, where n is the Length of array.
The following code example defines a method named PointFToPoint that converts a PointF structure to a Point structure. The example then creates an array 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<TInput, TOutput> method. The ConvertAll<TInput, 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() { PointF[] apf = { new PointF(27.8F, 32.62F), new PointF(99.3F, 147.273F), new PointF(7.5F, 1412.2F) }; Console.WriteLine(); foreach( PointF p in apf ) { Console.WriteLine(p); } Point[] ap = Array.ConvertAll(apf, new Converter<PointF, Point>(PointFToPoint)); Console.WriteLine(); foreach( Point p in ap ) { 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} */
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.