如何创建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的。比如在循环中动态创建对象
你可以创建一个类,例如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.