Converter<TInput, TOutput> Delegate
Represents a method that converts an object from one type to another type.
Assembly: mscorlib (in mscorlib.dll)
generic<typename TInput, typename TOutput> public delegate TOutput Converter( TInput input )
Parameters
- input
-
Type:
TInput
The object to convert.
Return Value
Type: TOutputThe TOutput that represents the converted TInput.
Type Parameters
- in TInput
The type of object that is to be converted.
- out TOutput
The type the input object is to be converted to.
This delegate is used by the ConvertAll<TInput, TOutput> method of the Array class and the ConvertAll<TOutput> method of the List<T>class to convert each element of the collection from one type to another.
This section contains two code examples. The first demonstrates the Converter<TInput, TOutput> delegate with the ConvertAll<TInput, TOutput> method of the Array class, and the second demonstrates the delegate with the ConvertAll<TOutput> method of the List<T> generic class.
Example 1
The following code example defines a method named PointFToPoint that converts a PointF structure to a Point structure. The example then creates an array 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<TInput, TOutput> method. The ConvertAll<TInput, TOutput> 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.
#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() { // Create an array of PointF objects. array<PointF>^ apf = { PointF(27.8F, 32.62F), PointF(99.3F, 147.273F), PointF(7.5F, 1412.2F) }; // Display each element in the PointF array. Console::WriteLine(); for each(PointF p in apf) { Console::WriteLine(p); } // Convert each PointF element to a Point object. array<Point>^ ap = Array::ConvertAll(apf, gcnew Converter<PointF, Point>(PointFToPoint) ); // Display each element in the Point array. Console::WriteLine(); for each(Point p in ap) { 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} */
Example 2
The following code example defines a method named PointFToPoint that converts a PointF structure to a Point structure. 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<TOutput> method. The ConvertAll<TOutput> 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.
#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} */
Available since 2.0
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0