List<T>.ConvertAll<TOutput>(Converter<T,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 les éléments du List<T> actuel dans un autre type et retourne une liste qui contient les éléments convertis.
public:
generic <typename TOutput>
System::Collections::Generic::List<TOutput> ^ ConvertAll(Converter<T, TOutput> ^ converter);
public System.Collections.Generic.List<TOutput> ConvertAll<TOutput> (Converter<T,TOutput> converter);
member this.ConvertAll : Converter<'T, 'Output> -> System.Collections.Generic.List<'Output>
Public Function ConvertAll(Of TOutput) (converter As Converter(Of T, TOutput)) As List(Of TOutput)
Paramètres de type
- TOutput
Type des éléments du tableau cible.
Paramètres
- converter
- Converter<T,TOutput>
Délégué Converter<TInput,TOutput> qui convertit chaque élément d'un type vers un autre.
Retours
List<T> du type cible contenant les éléments convertis du List<T> actuel.
Exceptions
converter
a la valeur null
.
Exemples
L’exemple suivant définit une méthode nommée PointFToPoint
qui convertit une PointF structure en structure Point . L’exemple crée ensuite un List<T> de PointF structures, crée un Converter\<PointF, Point>
délégué (Converter(Of PointF, Point)
en Visual Basic) pour représenter la PointFToPoint
méthode et transmet le délégué à la ConvertAll méthode . La ConvertAll méthode passe 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. Les deux listes sont affichées.
#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()
{
List<PointF>^ lpf = gcnew List<PointF>();
lpf->Add(PointF(27.8F, 32.62F));
lpf->Add(PointF(99.3F, 147.273F));
lpf->Add(PointF(7.5F, 1412.2F));
Console::WriteLine();
for each(PointF p in lpf)
{
Console::WriteLine(p);
}
List<Point>^ lp =
lpf->ConvertAll<Point>(
gcnew Converter<PointF, Point>(PointFToPoint)
);
Console::WriteLine();
for each(Point p in lp)
{
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()
{
List<PointF> lpf = new List<PointF>();
lpf.Add(new PointF(27.8F, 32.62F));
lpf.Add(new PointF(99.3F, 147.273F));
lpf.Add(new PointF(7.5F, 1412.2F));
Console.WriteLine();
foreach( PointF p in lpf )
{
Console.WriteLine(p);
}
List<Point> lp = lpf.ConvertAll(
new Converter<PointF, Point>(PointFToPoint));
Console.WriteLine();
foreach( Point p in lp )
{
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()
Dim lpf As New List(Of PointF)
lpf.Add(New PointF(27.8, 32.62))
lpf.Add(New PointF(99.3, 147.273))
lpf.Add(New PointF(7.5, 1412.2))
Console.WriteLine()
For Each p As PointF In lpf
Console.WriteLine(p)
Next
Dim lp As List(Of Point) = lpf.ConvertAll( _
New Converter(Of PointF, Point)(AddressOf PointFToPoint))
Console.WriteLine()
For Each p As Point In lp
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}
Remarques
est Converter<TInput,TOutput> un délégué à une méthode qui convertit un objet en type cible. Les éléments du actuel List<T> sont transmis individuellement au Converter<TInput,TOutput> délégué, et les éléments convertis sont enregistrés dans le nouveau List<T>.
Le courant List<T> reste inchangé.
Cette méthode est une opération O(n), où n est Count.