Array.ConvertAll(TInput[], Converter<TInput,TOutput>) Array.ConvertAll(TInput[], Converter<TInput,TOutput>) Array.ConvertAll(TInput[], Converter<TInput,TOutput>) Array.ConvertAll(TInput[], Converter<TInput,TOutput>) Method

Definição

Converte uma matriz de um tipo para uma matriz de outro tipo.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()

Parâmetros de tipo

TInput

O tipo dos elementos da matriz de origem.The type of the elements of the source array.

TOutput

O tipo dos elementos da matriz de destino.The type of the elements of the target array.

Parâmetros

array
TInput[]

O Array unidimensional baseado em zero para converter para um tipo de destino.The one-dimensional, zero-based Array to convert to a target type.

converter
Converter<TInput,TOutput> Converter<TInput,TOutput> Converter<TInput,TOutput> Converter<TInput,TOutput>

Um Converter<TInput,TOutput> que converte cada elemento de um tipo em outro tipo.A Converter<TInput,TOutput> that converts each element from one type to another type.

Retornos

TOutput[]

Uma matriz do tipo de destino que contém os elementos convertidos da matriz de origem.An array of the target type containing the converted elements from the source array.

Exceções

array é null.array is null.

- ou --or- converter é null.converter is null.

Exemplos

O exemplo de código a seguir define um método chamado PointFToPoint que converte um PointF estrutura para um Point estrutura.The following code example defines a method named PointFToPoint that converts a PointF structure to a Point structure. O exemplo cria uma matriz de PointF estruturas, cria um Converter<PointF, Point> delegar (Converter(Of PointF, Point) no Visual Basic) para representar o PointFToPoint método e passa o delegado para o ConvertAll método.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. O ConvertAll método passa cada elemento da lista de entrada para o PointFToPoint método e coloca os elementos convertidos em uma nova lista de Point estruturas.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. Ambas as listas são exibidas.Both lists are displayed.

#using <System.Drawing.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Collections::Generic;

Point PointFToPoint(PointF pf)
{
    return Point((int) pf.X, (int) pf.Y);
};

void main()
{
    // Create an array of PointF objects.
    array<PointF>^ apf = {
        PointF(27.8F, 32.62F),
        PointF(99.3F, 147.273F),
        PointF(7.5F, 1412.2F) };


    // Display each element in the PointF array.
    Console::WriteLine();
    for each(PointF p in apf)
    {
        Console::WriteLine(p);
    }

    // Convert each PointF element to a Point object.
    array<Point>^ ap = 
        Array::ConvertAll(apf, 
            gcnew Converter<PointF, Point>(PointFToPoint)
        );

    // Display each element in the Point array.
    Console::WriteLine();
    for each(Point p in ap)
    {
        Console::WriteLine(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}
 */
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}
 */
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}

Comentários

O Converter<TInput,TOutput> é um delegado para um método que converte um objeto para o tipo de destino.The Converter<TInput,TOutput> is a delegate to a method that converts an object to the target type. Os elementos de array são passados individualmente para o Converter<TInput,TOutput>, e os elementos convertidos são salvos na nova matriz.The elements of array are individually passed to the Converter<TInput,TOutput>, and the converted elements are saved in the new array.

A fonte array permanece inalterado.The source array remains unchanged.

Este método é uma operação O(n), em que n é o Length de array.This method is an O(n) operation, where n is the Length of array.

Aplica-se a

Veja também