List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Converteert de elementen in het huidige List<T> naar een ander type en retourneert een lijst met de geconverteerde elementen.
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)
Type parameters
- TOutput
Het type van de elementen van de doelmatrix.
Parameters
- converter
- Converter<T,TOutput>
Een Converter<TInput,TOutput> gemachtigde die elk element van het ene type naar een ander type converteert.
Retouren
Een List<T> van het doeltype dat de geconverteerde elementen van de huidige List<T>bevat.
Uitzonderingen
converter is null.
Voorbeelden
In het volgende voorbeeld wordt een methode gedefinieerd die PointFToPoint een PointF structuur converteert naar een Point structuur. Het voorbeeld maakt vervolgens een List<T> van PointF structuren, maakt een Converter\<PointF, Point> gedelegeerde (Converter(Of PointF, Point) in Visual Basic) om de methode PointFToPoint weer te geven en geeft de gemachtigde door aan de methode ConvertAll. De ConvertAll methode geeft elk element van de invoerlijst door aan de PointFToPoint methode en plaatst de geconverteerde elementen in een nieuwe lijst Point met structuren. Beide lijsten worden weergegeven.
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}
Opmerkingen
Dit Converter<TInput,TOutput> is een gemachtigde naar een methode waarmee een object wordt geconverteerd naar het doeltype. De elementen van de huidige List<T> worden afzonderlijk doorgegeven aan de Converter<TInput,TOutput> gemachtigde en de geconverteerde elementen worden opgeslagen in de nieuwe List<T>.
De huidige List<T> blijft ongewijzigd.
Deze methode is een O(n)-bewerking, waarbij n is Count.