Is it possible to extend arrays in C#? Is it possible to extend arrays in C#? arrays arrays

Is it possible to extend arrays in C#?


static class Extension{    public static string Extend(this Array array)    {        return "Yes, you can";    }}class Program{    static void Main(string[] args)    {        int[,,,] multiDimArray = new int[10,10,10,10];        Console.WriteLine(multiDimArray.Extend());    }}


Yes. Either through extending the Array class as already shown, or by extending a specific kind of array or even a generic array:

public static void Extension(this string[] array){  // Do stuff}// or:public static void Extension<T>(this T[] array){  // Do stuff}

The last one is not exactly equivalent to extending Array, as it wouldn't work for a multi-dimensional array, so it's a little more constrained, which could be useful, I suppose.


I did it!

public static class ArrayExtensions{    public static IEnumerable<T> ToEnumerable<T>(this Array target)    {        foreach (var item in target)            yield return (T)item;    }}