C#怎么申明动态数组???

时间:2022-08-30 19:52:10
听说ArrayList可以申明动态数据,但是我这样申明却是错的ArrayList[,] symbol = new ArrayList[,];
只有ArrayList[,] symbol = new ArrayList[pRows, pColumns];但这样也不是动态的啊!?
而且symbol.SetValue(1, j, i);我这样还报错“不能将对象存储在此类型的数组中。”
不知道应该怎么办???

15 个解决方案

#1


ArrayList[,] symbol = new ArrayList[,];

是因为需要指定长度
ArrayList[,] symbol = new ArrayList[100,10];
不固定长度可以用交错数组
int[][] obj = new int[]{new int[0]};
或是用List<T>

#2


动态数组使用List<T>
Dictionary等

#3


ArrayList list = new ArrayList();
list.Add(Object);

#4


引用 2 楼 wuyq11 的回复:
动态数组使用List<T>
Dictionary等

+1

#5


ArrayList 是个动态数组...

ArrayList al = new ArrayList();//这里不用定义这个数组的长度
al.Add(1);
al.Add("2");

//是这么动态地..

#6


var arr = new ArrayList();
不过使用的时候需要"拆箱"

#7


引用 2 楼 wuyq11 的回复:
动态数组使用List<T>
Dictionary等
+1

#8


List<T> list = new List<T>(); //这里声明数组,但没有固定长度
List.Add(T); //这里添加

#9


如果你不愿采用List,ArrayList等,
那就用Array.Resize来动态修改数组长度

       string[] arr = new string[10];
                //10=>100
                Array.Resize(ref arr, 100);

#10


ArrayList[,] symbol = new ArrayList[,];
这种写法就是错的,我是想申明二维动态数组,不是一维

#11


public class Data
{
    private int _int1;
    private int _int2;
    public Data(int i1,int i2){}

    public int Data1
    {
       get { return this._int1; }
       set { this._int1= value; }
    }
    
     public int Data2
    {
       get { return this._int2; }
       set { this._int2= value; }
    }

}


 List<Data> dataList = new List<Data>();
 dataList.Add(new Data(1,2));

#12


引用 11 楼 damjmk2 的回复:
public class Data
{
  private int _int1;
  private int _int2;
  public Data(int i1,int i2){}

  public int Data1
  {
  get { return this._int1; }
  set { this._int1= value; }
  }
   
  pub……

+1

#13


 现在的我 都在盲目的使用 List<T>

#14


Dictinary<int,List<T>>
自定义实体类

#15


引用 1 楼 wuyazhe 的回复:
ArrayList[,] symbol = new ArrayList[,];

是因为需要指定长度
ArrayList[,] symbol = new ArrayList[100,10];
不固定长度可以用交错数组
int[][] obj = new int[]{new int[0]};
或是用List<T>

顶二楼

#1


ArrayList[,] symbol = new ArrayList[,];

是因为需要指定长度
ArrayList[,] symbol = new ArrayList[100,10];
不固定长度可以用交错数组
int[][] obj = new int[]{new int[0]};
或是用List<T>

#2


动态数组使用List<T>
Dictionary等

#3


ArrayList list = new ArrayList();
list.Add(Object);

#4


引用 2 楼 wuyq11 的回复:
动态数组使用List<T>
Dictionary等

+1

#5


ArrayList 是个动态数组...

ArrayList al = new ArrayList();//这里不用定义这个数组的长度
al.Add(1);
al.Add("2");

//是这么动态地..

#6


var arr = new ArrayList();
不过使用的时候需要"拆箱"

#7


引用 2 楼 wuyq11 的回复:
动态数组使用List<T>
Dictionary等
+1

#8


List<T> list = new List<T>(); //这里声明数组,但没有固定长度
List.Add(T); //这里添加

#9


如果你不愿采用List,ArrayList等,
那就用Array.Resize来动态修改数组长度

       string[] arr = new string[10];
                //10=>100
                Array.Resize(ref arr, 100);

#10


ArrayList[,] symbol = new ArrayList[,];
这种写法就是错的,我是想申明二维动态数组,不是一维

#11


public class Data
{
    private int _int1;
    private int _int2;
    public Data(int i1,int i2){}

    public int Data1
    {
       get { return this._int1; }
       set { this._int1= value; }
    }
    
     public int Data2
    {
       get { return this._int2; }
       set { this._int2= value; }
    }

}


 List<Data> dataList = new List<Data>();
 dataList.Add(new Data(1,2));

#12


引用 11 楼 damjmk2 的回复:
public class Data
{
  private int _int1;
  private int _int2;
  public Data(int i1,int i2){}

  public int Data1
  {
  get { return this._int1; }
  set { this._int1= value; }
  }
   
  pub……

+1

#13


 现在的我 都在盲目的使用 List<T>

#14


Dictinary<int,List<T>>
自定义实体类

#15


引用 1 楼 wuyazhe 的回复:
ArrayList[,] symbol = new ArrayList[,];

是因为需要指定长度
ArrayList[,] symbol = new ArrayList[100,10];
不固定长度可以用交错数组
int[][] obj = new int[]{new int[0]};
或是用List<T>

顶二楼