List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Konvertiert die Elemente im Aktuellen List<T> in einen anderen Typ und gibt eine Liste zurück, die die konvertierten Elemente enthält.
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)
Typparameter
- TOutput
Der Typ der Elemente des Zielarrays.
Parameter
- converter
- Converter<T,TOutput>
Eine Converter<TInput,TOutput> Stellvertretung, die jedes Element von einem Typ in einen anderen Typ konvertiert.
Gibt zurück
Ein List<T> Zieltyp, der die konvertierten Elemente aus dem aktuellen List<T>Enthält.
Ausnahmen
converter ist null.
Beispiele
Im folgenden Beispiel wird eine Methode definiert PointFToPoint , die eine Struktur in eine PointFPoint Struktur konvertiert. Anschließend wird ein List<T> von PointF Strukturen erstellt, ein Converter\<PointF, Point> Delegat (Converter(Of PointF, Point) in Visual Basic) erstellt, um die methode PointFToPoint darzustellen, und der Delegat wird an die methode ConvertAll übergeben. Die ConvertAll Methode übergibt jedes Element der Eingabeliste an die PointFToPoint Methode und fügt die konvertierten Elemente in eine neue Liste von Point Strukturen ein. Beide Listen werden angezeigt.
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}
Hinweise
Dies ist ein Delegat Converter<TInput,TOutput> an eine Methode, die ein Objekt in den Zieltyp konvertiert. Die Elemente des Aktuellen List<T> werden einzeln an den Converter<TInput,TOutput> Delegaten übergeben, und die konvertierten Elemente werden im neuen List<T>gespeichert.
Der Aktuelle List<T> bleibt unverändert.
Diese Methode ist ein O(n)-Vorgang, wobei n ist Count.