Converts the elements in the current ListT to another type, and returns a list containing the converted elements.
Assembly: mscorlib (in mscorlib.dll)
Public Function ConvertAll(Of TOutput) ( _
converter As [%$TOPIC/73fe8cwf_en-us_VS_110_2_0_0_0_0%](Of T, TOutput) _
) As [%$TOPIC/73fe8cwf_en-us_VS_110_2_0_0_0_1%](Of TOutput)
public [%$TOPIC/73fe8cwf_en-us_VS_110_2_0_1_0_0%]<TOutput> ConvertAll<TOutput>(
[%$TOPIC/73fe8cwf_en-us_VS_110_2_0_1_0_1%]<T, TOutput> converter
)
public:
generic<typename TOutput>
[%$TOPIC/73fe8cwf_en-us_VS_110_2_0_2_0_0%]<TOutput>^ ConvertAll(
[%$TOPIC/73fe8cwf_en-us_VS_110_2_0_2_0_1%]<T, TOutput>^ converter
)
member ConvertAll :
converter:[%$TOPIC/73fe8cwf_en-us_VS_110_2_0_3_0_0%]<'T, 'TOutput> -> [%$TOPIC/73fe8cwf_en-us_VS_110_2_0_3_0_1%]<'TOutput>
Type Parameters
- TOutput
The type of the elements of the target array.
Parameters
- converter
- Type:
SystemConverter
T, TOutput
A ConverterTInput, TOutput delegate that converts each element from one type to another type.
Return Value
Type: System.Collections.GenericListTOutputA ListT of the target type containing the converted elements from the current ListT.
| Exception | Condition |
|---|---|
| ArgumentNullException | converter is . |
The ConverterTInput, TOutput is a delegate to a method that converts an object to the target type. The elements of the current ListT are individually passed to the ConverterTInput, TOutput delegate, and the converted elements are saved in the new ListT.
The current ListT remains unchanged.
This method is an O(n) operation, where n is Count.
The following code example defines a method named PointFToPoint that converts a PointF structure to a Point structure. The example then creates a ListT 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 ConvertAllTOutput method. The ConvertAllTOutput method passes each element of the input list to the PointFToPoint method and puts the converted elements into a new list of Point structures. Both lists are displayed.
Imports System
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}
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}
*/
#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}
*/
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.