Array.ConvertAll<TInput,TOutput> Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Convertit un tableau d’un type en tableau d’un autre 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()
Paramètres de type
- TInput
Type des éléments du tableau source.
- TOutput
Type des éléments du tableau cible.
Paramètres
- array
- TInput[]
Basé sur Array zéro unidimensionnel à convertir en type cible.
- converter
- Converter<TInput,TOutput>
Qui Converter<TInput,TOutput> convertit chaque élément d’un type en un autre type.
Retours
Tableau du type cible contenant les éléments convertis du tableau source.
Exceptions
Exemples
L’exemple de code suivant définit une méthode nommée PointFToPoint qui convertit une PointF structure en Point structure. L’exemple crée ensuite un tableau de structures PointF, crée un délégué Converter<PointF, Point> (Converter(Of PointF, Point) dans Visual Basic) pour représenter la méthode PointFToPoint et transmet le délégué à la méthode ConvertAll. La ConvertAll méthode transmet chaque élément de la liste d’entrée à la PointFToPoint méthode et place les éléments convertis dans une nouvelle liste de Point structures. Dans l’exemple F#, la pointFToPoint fonction est implicitement convertie en Converter<PointF, Point> délégué. Les deux listes sont affichées.
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}
Remarques
Il Converter<TInput,TOutput> s’agit d’un délégué à une méthode qui convertit un objet en type cible. Les éléments de array ces éléments sont transmis individuellement au Converter<TInput,TOutput>tableau et les éléments convertis sont enregistrés dans le nouveau tableau.
La source array reste inchangée.
Cette méthode est une opération O(n), où n est le Lengtharray.
Dans F#, la fonction Array.map est généralement utilisée à la place.