在 C# 中调整类数组中数组的大小
本文关键字:数组 调整 | 更新日期: 2023-09-27 18:31:45
我得到了一个包含数组和另一个对象的类:
public class MyClass
{
public double[] myArray;
public int otherObject;
};
现在我想创建该类的不同数组实例:
static void Main(string[] args)
{
MyClass[] classArray1 = new MyClass[classArraySize1]
MyClass[] classArray2 = new MyClass[classArraySize2]
};
但是,如何单独为每个classArray
调整myArray
的大小呢?
稍后应为它们分配如下值:
classArray1[i].myArray[j] = 1.0;
classArray2[n].myArray[k] = 2.0;
您可以向类添加一个构造函数,该构造函数可用于将数组初始化为给定大小:
public class MyClass
{
public double[] myArray;
public int otherObject;
public MyClass(int size)
{
myArray = new double[size];
}
}
然后,您可以使用如下内容为MyClass
数组设置myArray
的大小:
int numMyClasses = 123;
int sizeMyArray = 456;
// Manually
MyClass[] classArray1 = new MyClass[numMyClasses];
for (int i = 0; i < numMyClasses; i++)
classArray1[i] = new MyClass(sizeMyArray);
// LINQ
MyClass[] classArray2 = new MyClass[numMyClasses]
.Select(x => new MyClass(sizeMyArray)).ToArray();
您可以像这样即时设置它们
static void Main(string[] args)
{
MyClass[] classArray1 = new MyClass[classArraySize1]
MyClass[] classArray2 = new MyClass[classArraySize2]
classArray1[i].myArray = new double[whatever_size_you_want];
classArray2[i].myArray = new double[whatever_size_you_want];
};
你可以使用这个:
MyClass[] classArray1 =
{
new MyClass { myArray = new double[classArraySize1] },
new MyClass { myArray = new double[classArraySize1] }
};
MyClass[] classArray2 =
{
new MyClass { myArray = new double[classArraySize2] },
new MyClass { myArray = new double[classArraySize2] }
};
构造
函数(在我看来)是最好的方法。
public class MyClass
{
public double[] myArray;
public int otherObject;
public MyClass(int ArraySize)
{
myArray = new double[ArraySize];
}
}
static void Main(string[] args)
{
MyClass custom1 = new MyClass(10); // <-- new instance of your class
custom1.myArray // <-- holds your array
custom1.otherObject // <-- holds your object
}