在C#中动态创建集合
本文关键字:创建 集合 动态 | 更新日期: 2023-09-27 18:00:00
我有一个应用程序,它将持续接受用户的输入,并将输入存储在class ItemsValue
的List
中
我将如何使它,一旦收集达到1000计数,它将"停止",并将创建一个新的收集,以此类推。
例如:
List<ItemsValue> collection1 = new List<ItemsValue>();
//User input will be stored in `collection1`
if (collection1.count >= 1000)
//Create a new List<ItemsVales> collection2,
//and the user input will be stored in collection2 now.
//And then if collection2.count reaches 1000, it will create collection3.
//collection3.count reaches 1000, create collection4 and so on.
我不知道为什么,但您想要一个"列表列表":List<List<ItemsValue>>
。
List<List<ItemsValue>> collections = new List<List<ItemsValue>>();
collections.Add(new List<ItemsValue>());
collections.Last().Add(/*user input*/);
if (collections.Last().Count >= 1000) collections.Add(new List<ItemsValue>());
我认为您需要List<List<ItemsValue>>
List<List<ItemsValue>> mainCollection = new List<List<ItemsValue>>();
int counter = 0;
if (counter == 0) mainCollection.Add(new List<ItemsValue>());
if(mainCollection[counter].Count < 1000) mainCollection[counter].Add(item);
else
{
mainCollection.Add(new List<ItemsValue>());
counter++;
mainCollection[counter].Add(item);
}
我不知道你的其他代码是什么样子的,但我会让计数器是静态的。
使用集合列表。如果大小固定,则可以使用数组而不是列表。
List<List<ItemsValue>> collections = new List<List<ItemsValue>>({new List<ItemsValue>()});
if(collections[collections.Count- 1].Count >= 1000)
{
var newCollection = new List<ItemsValue>();
// do what you want with newCollection
collections.Add(newCollection);
}
试试这个:
List<List<ItemsValue>> collections = new List<List<ItemsValue>>({new List<ItemsValue>()});
if(collections[collections.Count-1].Count >= 1000)
{
collections.Add(new List<ItemsValue>());
}
在向集合中添加项目时,请使用上面的if语句。要将项目添加到集合中,请使用以下命令:
collections[collections.Count-1].Add(yourItem);