创建一个通用的Array2D包装类

时间:2016-01-02 05:18:07

标签: c# arrays generics multidimensional-array data-structures

为了更方便地在不同的数据结构之间切换,我想为2D数组创建一个通用的包装类......

public sealed class Array2D<T>
{
    private T<,> _fields;

    public Array2D()
    {
    }
}

private T<,> _fields;给了我错误:

  

类型参数“T”不能与类型参数

一起使用

在这种情况下,我很难理解C#泛型。我怎么能解决这个问题?

4 个答案:

答案 0 :(得分:3)

<,>用于引用未绑定的泛型类型。您要找的是[,]

public sealed class Array2D<T>
{
    private T[,] _fields;

    public Array2D()
    {
    }
}

答案 1 :(得分:1)

声明数组你需要使用[]所以它应该是

T[,] array;

答案 2 :(得分:1)

Multidimensional Arrays是这样的:

private T[,] _fields;

所以你应该:

public sealed class Array2D<T>
{
     private T[,] _fields;

     //Or as property
     public T[,] Fields
     {
         get { return _fields; }
         set { _fields = value; }
     }

     public Array2D()
     {

     }
}

然后使用它:

Array2D<int> arr = new Array2D<int> {Fields = new[,] {{1, 2}, {3, 4}, {5, 6}, {7, 8}}};

答案 3 :(得分:1)

尝试使用List<List<SomeType>>两个暗淡的数组。在你的情况下可能是List<List<T>>。这也是通用的。并添加using语句using System.Linq; using System.Linq.Expressions;您也可以获得非常丰富的功能。