C# | Converting an array of one type to an array of another type
Array.ConvertAll(TInput[], Converter<TInput, TOutput>) Method is used to convert an array of one type to an array of another type.
Syntax:
public static TOutput[] ConvertAll<TInput,TOutput> (TInput[] array, Converter<TInput,TOutput> converter);
Here, TInput and TOutput is the source array and target array respectively.
Parameters:
array: It is the one-dimensional, zero-based Array to convert to a target type.
converter: It is a Converter that converts each element from one type to another type.
Return Value: This method returns an array of the target type containing the converted elements from the source array.
Exception: This method throws ArgumentNullException if the array is null or converter is null.
Below programs illustrate the use of Array.ConvertAll(TInput[], Converter<TInput, TOutput>) Method
Example 1:
// C# program to demonstrate // Array.ConvertAll() Method using System; using System.Collections.Generic; public class GFG { // Main Method public static void Main() { try { // Creating and initializing // new the Array of int int [] myArr = {10, 20, 30, 40}; // Display the values of the myArr. Console.WriteLine( "Initial Array:" ); // calling the PrintIndexAndValues() // method to print PrintIndexAndValues(myArr); // converting int myArr to String conarr String[] conarr = Array.ConvertAll(myArr, new Converter< int , String>(intToString)); // Display the values of the myArr. Console.WriteLine( "Converted Array:" ); // calling the PrintIndexAndValues() // method to print PrintIndexAndValues(conarr); } catch (ArgumentNullException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } } // Defining the method // PrintIndexAndValues public static void PrintIndexAndValues(String[] myArr) { for ( int i = 0; i < myArr.Length; i++) { Console.WriteLine( "{0}" , myArr[i]); } Console.WriteLine(); } // Defining the method // PrintIndexAndValues public static void PrintIndexAndValues( int [] myArr) { for ( int i = 0; i < myArr.Length; i++) { Console.WriteLine( "{0}" , myArr[i]); } Console.WriteLine(); } // Defining the method // intToString public static String intToString( int pf) { return pf.ToString(); } } |
Initial Array: 10 20 30 40 Converted Array: 10 20 30 40
Example 2:
// C# program to demonstrate // Array.ConvertAll() Method using System; using System.Collections.Generic; public class GFG { // Main Method public static void Main() { try { // Creating and initializing new // the Array of int with null value int [] myArr = null ; // converting int myArr to String conarr String[] conarr = Array.ConvertAll(myArr, new Converter< int , String>(intToString)); // calling the PrintIndexAndValues() // method to print PrintIndexAndValues(conarr); } catch (ArgumentNullException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } } // Defining the method // PrintIndexAndValues public static void PrintIndexAndValues(String[] myArr) { for ( int i = 0; i < myArr.Length; i++) { Console.WriteLine( "{0}" , myArr[i]); } Console.WriteLine(); } // Defining the method // intToString public static String intToString( int pf) { return pf.ToString(); } } |
Exception Thrown: System.ArgumentNullException
Reference: