Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Array.ConvertAll<TInput,TOutput> Method

Definition

Namespace:
System
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Runtime.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Converts an array of one type to an array of another type.

public:
generic <typename TInput, typename TOutput>
 static cli::array <TOutput> ^ ConvertAll(cli::array <TInput> ^ array, Converter<TInput, TOutput> ^ converter);
public static TOutput[] ConvertAll<TInput,TOutput>(TInput[] array, Converter<TInput,TOutput> converter);
static member ConvertAll : 'Input[] * Converter<'Input, 'Output> -> 'Output[]
Public Shared Function ConvertAll(Of TInput, TOutput) (array As TInput(), converter As Converter(Of TInput, TOutput)) As TOutput()

Type Parameters

TInput

The type of the elements of the source array.

TOutput

The type of the elements of the target array.

Parameters

array
TInput[]

The one-dimensional, zero-based Array to convert to a target type.

converter
Converter<TInput,TOutput>

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

Returns

TOutput[]

An array of the target type containing the converted elements from the source array.

Exceptions

array is null.

-or-

converter is null.

Examples

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 method. The ConvertAll method passes each element of the input list to the PointFToPoint method and puts the converted elements into a new list of Point structures. In the F# example, the pointFToPoint function is implicitly casted to the Converter<PointF, Point> delegate. Both lists are displayed.

using System;
using System.Drawing;
using System.Collections.Generic;

public class Example
{
 public static void Main()
 {
 // Create an array of PointF objects.
 PointF[] apf = {
 new PointF(27.8F, 32.62F),
 new PointF(99.3F, 147.273F),
 new PointF(7.5F, 1412.2F) };

 // Display each element in the PointF array.
 Console.WriteLine();
 foreach( PointF p in apf )
 Console.WriteLine(p);

 // Convert each PointF element to a Point object.
 Point[] ap = Array.ConvertAll(apf,
 new Converter<PointF, Point>(PointFToPoint));

 // Display each element in the Point array.
 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}
 */
open System
open System.Drawing
open System.Collections.Generic

let pointFToPoint (pf: PointF) =
 Point(int pf.X, int pf.Y)

// Create an array of PointF objects.
let apf =
 [| PointF(27.8f, 32.62f)
 PointF(99.3f, 147.273f)
 PointF(7.5f, 1412.2f) |]

// Display each element in the PointF array.
printfn ""
for p in apf do
 printfn $"{p}"

// Convert each PointF element to a Point object.
let ap = Array.ConvertAll(apf, pointFToPoint)
// let ap = Array.map pointFToPoint apf

// Display each element in the Point array.
printfn ""
for p in ap do
 printfn $"{p}"

// 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}
Imports System.Drawing
Imports System.Collections.Generic

Public Class Example
 Public Shared Sub Main()
 ' Create an array of PointF objects.
 Dim apf() As PointF = { _
 New PointF(27.8, 32.62), _
 New PointF(99.3, 147.273), _
 New PointF(7.5, 1412.2) }

 ' Display each element in the PointF array.
 Console.WriteLine()
 For Each p As PointF In apf
 Console.WriteLine(p)
 Next
 
 ' Convert each PointF element to a Point object.
 Dim ap() As Point = Array.ConvertAll(apf, _
 New Converter(Of PointF, Point)(AddressOf PointFToPoint))

 ' Display each element in the Point array.
 Console.WriteLine()
 For Each p As Point In ap
 Console.WriteLine(p)
 Next
 End Sub

 Public Shared Function PointFToPoint(ByVal pf As PointF) _
 As Point

 Return New Point(CInt(pf.X), CInt(pf.Y))
 End Function
End Class
' The example produces the following output:
' {X=27.8, Y=32.62}
' {X=99.3, Y=147.273}
' {X=7.5, Y=1412.2}
' 
' {X=28,Y=33}
' {X=99,Y=147}
' {X=8,Y=1412}

Remarks

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.

In F#, the Array.map function is generally used instead.

Applies to

See also


Feedback

Was this page helpful?