C# | Converting an array of one type to an array of another type

01 Feb, 2019
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() Methodusing 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() Methodusing 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:
https://docs.microsoft.com/en-us/dotnet/api/system.array.convertall?view=netframework-4.7.2
CSharp-Arrays
CSharp-method
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.