Evaluar y enviar comentarios
MSDN
MSDN Library
 ConvertAll(TInput, TOutput) (Método...
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2008/.NET Framework 3.5

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
Array..::.ConvertAll<(Of <(TInput, TOutput>)>) (Método)

Actualización: noviembre 2007

Convierte una matriz de un tipo en una matriz de otro tipo.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)
Visual Basic (Declaración)
Public Shared Function ConvertAll(Of TInput, TOutput) ( _
    array As TInput(), _
    converter As Converter(Of TInput, TOutput) _
) As TOutput()
Visual Basic (Uso)
Dim array As TInput()
Dim converter As Converter(Of TInput, TOutput)
Dim returnValue As TOutput()

returnValue = Array.ConvertAll(array, _
    converter)
C#
public static TOutput[] ConvertAll<TInput, TOutput>(
    TInput[] array,
    Converter<TInput, TOutput> converter
)
Visual C++
public:
generic<typename TInput, typename TOutput>
static array<TOutput>^ ConvertAll(
    array<TInput>^ array, 
    Converter<TInput, TOutput>^ converter
)
J#
J# admite el uso de APIs genéricas pero no admite la declaración de nuevas API.
JScript
JScript no admite el uso de métodos ni tipos genéricos.

Parámetros de tipo

TInput

Tipo de los elementos de la matriz de origen.

TOutput

Tipo de los elementos de la matriz de destino.

Parámetros

array
Tipo: array<TInput>[]()[]
Matriz Array unidimensional de base cero que se va a convertir en el tipo de destino.
converter
Tipo: System..::.Converter<(Of <(TInput, TOutput>)>)
Delegado Converter<(Of <(TInput, TOutput>)>) que convierte el tipo de cada elemento en otro tipo.

Valor devuelto

Tipo: array<TOutput>[]()[]
Matriz del tipo de destino que contiene los elementos convertidos de la matriz de origen.
ExcepciónCondición
ArgumentNullException

array es nullNothingnullptrreferencia null (Nothing en Visual Basic).

O bien,

converter es nullNothingnullptrreferencia null (Nothing en Visual Basic).

Converter<(Of <(TInput, TOutput>)>) es un delegado de un método que convierte un objeto al tipo de destino. Los elementos de array se pasan individualmente al delegado Converter<(Of <(TInput, TOutput>)>) y los elementos convertidos se guardan en la nueva matriz.

La array de origen se mantiene sin cambios.

Este método es una operación O(n), donde n es la propiedad Length de array.

En el ejemplo de código siguiente se define un método denominado PointFToPoint que convierte una estructura PointF en una estructura Point. A continuación, en el ejemplo se crea una matriz de estructuras PointF, se crea un delegado Converter<PointF, Point> (Converter(Of PointF, Point) en Visual Basic) para representar al método PointFToPoint y se pasa el delegado al método ConvertAll<(Of <(TInput, TOutput>)>). El método ConvertAll<(Of <(TInput, TOutput>)>) pasa cada elemento de la lista de entrada al método PointFToPoint y coloca los elementos convertidos en una nueva lista de estructuras Point. Se muestran ambas listas.

Visual Basic
Imports System
Imports System.Drawing
Imports System.Collections.Generic

Public Class Example

    Public Shared Sub Main()

        Dim apf() As PointF = { _
            New PointF(27.8, 32.62), _
            New PointF(99.3, 147.273), _
            New PointF(7.5, 1412.2)  }

        Console.WriteLine()
        For Each p As PointF In apf
            Console.WriteLine(p)
        Next

        Dim ap() As Point = Array.ConvertAll(apf, _
            New Converter(Of PointF, Point)(AddressOf PointFToPoint))

        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

' 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=28,Y=33}
'{X=99,Y=147}
'{X=8,Y=1412}
C#
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}
 */
Visual C++
#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()
{
    array<PointF>^ apf = {
        PointF(27.8F, 32.62F),
        PointF(99.3F, 147.273F),
        PointF(7.5F, 1412.2F) };

    Console::WriteLine();
    for each(PointF p in apf)
    {
        Console::WriteLine(p);
    }

    array<Point>^ ap = 
        Array::ConvertAll(apf, 
            gcnew Converter<PointF, Point>(PointFToPoint)
        );

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

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2009 Microsoft Corporation. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker