Ler em inglês Editar

Compartilhar via


Array.ConvertAll<TInput,TOutput> Method

Definition

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

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

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

Produto Versões
.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

See also