我已经习惯了方法添加到外部类,比如IEnumerable的。 但是,我们可以扩展在C#中的数组?
我打算添加到阵列的方法是将其转换为IEnumerable的,即使它是多维的。
没有涉及到如何在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<T>(this T[] array)
{
// Do stuff
}
最后一个是不完全等同于扩展Array
,因为它不会为一个多维数组工作,所以这是一个有点更多的限制,这可能是有用的,我想。
我做的!
public static class ArrayExtensions
{
public static IEnumerable<T> ToEnumerable<T>(this Array target)
{
foreach (var item in target)
yield return (T)item;
}
}