最通用的数组类型?

时间:2011-04-27 23:08:15

标签: c# arrays .net-4.0

我希望用一些辅助方法创建一个简单的数组包装器,但是我希望这个包装器能够处理任何1维数组/操作。所以我正在寻找一个基本类型来将内部数组转换为。

任何人都可以提升类型吗?

3 个答案:

答案 0 :(得分:3)

您可以使用泛型类型参数:

public class ArrayWrapper<T>
{
   private T[] array;
}

List<T>类通常封装了一个数组,并且已经提供了许多辅助方法。

答案 1 :(得分:3)

听起来您希望将辅助方法编写为通用扩展方法:

public static Array Extensions
{
    public void Foo<T>(this T[] bar)
    {
        //foo this bar
    }
}

由于这是一个扩展方法,所有数组现在都有一个名为foo的实例方法:

int[] a = new int[] { 1, 2, 3 };
a.Foo();

的Nb。看到其他答案后重读你的问题,我看到你在问一个包装类。如果你更喜欢一个类,那么另一个答案在技术上更正确,但如果你只是制作了几个辅助方法,那么扩展方法就是解决问题的更好方法。

答案 2 :(得分:3)

为什么不使用一组扩展方法?

public static class ArrayExtensions
{
    public static void MyFoo<T>(this T[] sourceArray)
    {
        //...
    }
}