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

Definición

Convierte una matriz de un tipo en una matriz de otro 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

Tipo de los elementos de la matriz de origen.The type of the elements of the source array.

TOutput

Tipo de los elementos de la matriz de destino.The type of the elements of the target array.

Parámetros

array
TInput[]

Array unidimensional de base cero que se va a convertir en un 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>

Converter<TInput,TOutput> que convierte cada elemento en otro tipo.A Converter<TInput,TOutput> that converts each element from one type to another type.

Devoluciones

TOutput[]

Matriz del tipo de destino que contiene los elementos convertidos de la matriz de origen.An array of the target type containing the converted elements from the source array.

Excepciones

El valor de array es null.array is null.

O bien-or- El valor de converter es null.converter is null.

Ejemplos

El ejemplo de código siguiente define un método denominado PointFToPoint que convierte un PointF estructura a un Point estructura.The following code example defines a method named PointFToPoint that converts a PointF structure to a Point structure. El ejemplo, a continuación, crea una matriz de PointF estructuras, crea un Converter<PointF, Point> delegar (Converter(Of PointF, Point) en Visual Basic) para representar el PointFToPoint método y pasa el delegado para el 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. El ConvertAll método pasa cada elemento de la lista de entrada para el PointFToPoint método y coloca los elementos convertidos en una nueva lista de Point estructuras.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. Se muestran ambas listas.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}

Comentarios

El Converter<TInput,TOutput> es un delegado a un método que convierte un objeto en el tipo de destino.The Converter<TInput,TOutput> is a delegate to a method that converts an object to the target type. Los elementos de array individualmente se pasan a la Converter<TInput,TOutput>, y los elementos convertidos se guardan en la nueva matriz.The elements of array are individually passed to the Converter<TInput,TOutput>, and the converted elements are saved in the new array.

El origen array permanece sin cambios.The source array remains unchanged.

Este método es O (n) operación, donde n es el Length de array.This method is an O(n) operation, where n is the Length of array.

Se aplica a

Consulte también: