基于运行时计数值动态创建对象-C#

基于运行时计数值动态创建对象-C#,c#,C#,我试图实现的场景的简单示例 class ATest { int a; int b; BTest[]; } class BTest { int X; int Y; } 我需要根据一个值动态创建ATest和BTest 我试着把它当作Atest[]aobj=newatest[count](此计数值将以编程方式设置) 现在我需要动态创建B的对象数组,并将其分配给A 目前,我假定count为静态值,并将其赋值 Atest[] aobj = new Atest[

我试图实现的场景的简单示例

class ATest
{
    int a;
    int b;
    BTest[];
}

class BTest
{
    int X;
    int Y;
}
  • 我需要根据一个值动态创建
    ATest
    BTest
  • 我试着把它当作
    Atest[]aobj=newatest[count](此计数值将以编程方式设置)
  • 现在我需要动态创建
    B
    的对象数组,并将其分配给
    A
  • 目前,我假定count为静态值,并将其赋值

    Atest[] aobj = new Atest[20];   
    BTest[] bobj = new BTest[1];
    bobj[0] = new Btest();
    aobj[0] = new ATest();
    aobj[0].BTest = bobj;
    BTest[] bobj1 = new BTest[1];
    bobj1[0] = new Btest();
    aobj1[0].BTest = bobj1;
    
这可能不是编写代码的最佳方式

请就如何动态实现它提出建议
-动态创建
BTest
对象数组的数量,并将其分配给
ATest
实例

尝试使用构造函数:

class ATest {
    int a;
    int b;
    BTest[] btests;
    public ATest(int numOfB) {
        btests = new BTest[numOfB];
    }
}
您可以在一个简单的循环中创建和初始化atests:

int M = 20; // Number of Test A objects
int N = 10; // Number of Test B objects per Test A
var atests = new ATest[M];
for (var i = 0 ; i != M ; i++) {
    atests[i] = new ATest(N);
}

在计数设置器中重置数组的容量(BTest或ATest)如何?如果我使用类下方法,我认为它可以解决动态创建ATest和BTest对象的问题。