List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) Methode
Definition
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.The type of the elements of the target array.
Parameter
- converter
- Converter<T,TOutput>
Ein Converter<TInput,TOutput>-Delegat, der jedes Element von einem Typ in einen anderen Typ konvertiert.A Converter<TInput,TOutput> delegate that converts each element from one type to another type.
Gibt zurück
- List<TOutput>
Eine List<T> des Zieltyps, die die konvertierten Elemente aus der aktuellen List<T> enthält.A List<T> of the target type containing the converted elements from the current List<T>.
Ausnahmen
converter
ist null
.converter
is null
.
Beispiele
Im folgenden Beispiel wird eine Methode mit dem Namen definiert PointFToPoint
, die eine- PointF Struktur in eine- Point Struktur konvertiert.The following example defines a method named PointFToPoint
that converts a PointF structure to a Point structure. Im Beispiel wird dann eine List<T> von PointF Strukturen erstellt, ein Delegat Converter\<PointF, Point>
( Converter(Of PointF, Point)
in Visual Basic) erstellt, um die PointFToPoint
Methode darzustellen, und der Delegat wird an die Methode weitergeleitet ConvertAll .The example then creates a List<T> of PointF structures, creates a Converter\<PointF, Point>
delegate (Converter(Of PointF, Point)
in Visual Basic) to represent the PointFToPoint
method, and passes the delegate to the ConvertAll method. 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.The ConvertAll method passes each element of the input list to the PointFToPoint
method and puts the converted elements into a new list of Point structures. Beide Listen werden angezeigt.Both lists are displayed.
#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}
Hinweise
Der Converter<TInput,TOutput> ist ein Delegat einer Methode, die ein Objekt in den Zieltyp konvertiert.The Converter<TInput,TOutput> is a delegate to a method that converts an object to the target type. Die Elemente der aktuellen List<T> werden einzeln an den-Delegaten übermittelt Converter<TInput,TOutput> , und die konvertierten Elemente werden in der neuen gespeichert List<T> .The elements of the current List<T> are individually passed to the Converter<TInput,TOutput> delegate, and the converted elements are saved in the new List<T>.
Der aktuelle List<T> bleibt unverändert.The current List<T> remains unchanged.
Diese Methode ist ein O (n)-Vorgang, bei dem n gleich ist Count .This method is an O(n) operation, where n is Count.