是否可以在C#中扩展数组?

我习惯于向IEnumerable等外部类添加方法。 但是我们可以在C#中扩展数组吗?

我打算为数组添加一个方法,即使它是多维的,也可以将它转换为IEnumerable。

与如何在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()); } } 

是。 要么通过扩展已经显示的Array类,要么扩展特定类型的数组甚至是通用数组:

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

最后一个并不完全等同于扩展Array ,因为它不适用于多维数组,所以它有点受限制,这可能是有用的,我想。

我做的!

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