如何创建List动态

本文关键字:MyClass 动态 List 何创建 创建 | 更新日期: 2023-09-27 18:15:54

如何动态创建MyClass对象?我有嵌套列表,我将从我的DataTable中得到嵌套列表的计数,所以我不知道我需要多少对象。I am working inside loop.

我能得到一些例子的帮助吗?

for (int i = 0; i < table.Rows.Count; i++)
{
List<MyClass> names[i] = new List<Checklists>();
}

那么我将得到:

names0
names1
names2
......n

然后添加像

这样的元素
name0.Add(new MyClass(...))
name1.Add(new MyClass(...))
name2.Add(new MyClass(...))

.........

我在StackOverFlow上读了一些问题,但它们对我的情况没有帮助,因为它们不是关于List的。比如在循环中动态创建对象

如何创建List<MyClass>动态

你可以创建一个类,例如LISTOFNAMES,它可以有一个public成员names[]作为

数组
          List <MyClass> 

类型。数组的大小可以传递为一个整数变量到LISTOFNAMES(..)的构造函数中,并在代码中你可以实例化每个名字[i]作为一个单独的List。下面的示例代码显示了

所描述的方法
     // Add a public class LISTOFNAMES
       public class LISTOFNAMES
       {
        public List<MyClass>[] names;
        public LISTOFNAMES(int arsize)
        {
             this.names=new List<MyClass>[arsize];
        }
       }

然后在你的代码中,你必须首先实例化一个类型为LISTOFNAMES的对象(假设你已经获得了数组名称[index]所需的元素数量)然后你必须单独实例化每个名称[index]以

       List <MyClass> 

类型。因此,您可以添加以下行

       //in your code
       //suppose you have got a value for the number of names[] items say
      // to be named nn (of type int), then you add the following
       LISTOFNAMES lista=new LISTOFNAMES(nn);
       // Then you add..
       for(int i=0;i<nn;i++)
       {
          lista.names[i]=new List<MyClass>();
       }
       //Now you can use individually the lista.names[index] objects,
      // for example like
       lista.names[0].Add(new MyClass(...));
       lista.names[1].Add(new MyClass(...));
       etc
或者,您可以简单地实例化类型为 的数组对象。
      List<MyClass>[]

,然后分别实例化每个项。已获得数组的大小为"ar_size"是一个int型变量,例如

                 int ar_size=table.Rows.Count;

你可以使用下面的

          List<MyClass>[] names=new List<MyClass>[ar_size];
          for(int i=0;i<ar_size;i++)
             {
                names[i]=new List<MyClass>();
             }

然后填写每个对象的名称[index],如下所示

            names[0].Add(new MyClass(...));
            names[1].Add(new MyClass(...));
       etc.