C# 动态创建IEnumerable集合

C# 动态创建IEnumerable集合,c#,list,ienumerable,C#,List,Ienumerable,我有一个问题,我得到了5000和2000个条目的列表。。 问题是我想使用5000个条目列表的每个人都必须手动键入: IEnumerable<string> partList1; IEnumerable<string> partList2; IEnumerable<string> partList3; IEnumerable<string> partList4; 我必须对所有4个列表都这样做,如果我使用2000个条目列表,我只需要两个零件列表。 我

我有一个问题,我得到了5000和2000个条目的列表。。 问题是我想使用5000个条目列表的每个人都必须手动键入:

IEnumerable<string> partList1;
IEnumerable<string> partList2;
IEnumerable<string> partList3;
IEnumerable<string> partList4;
我必须对所有4个列表都这样做,如果我使用2000个条目列表,我只需要两个零件列表。 我怎样才能让它动态地确定999多久会进入它自己创建的明细表中

我试过这样的方法:

for(int i = 0; i < IDList.Count() / 999; i++) {
//and here I stuck
}
for(int i=0;i
如果我正确理解了您的问题,您正在尝试将一些列表项拆分为1000个(或999个;不清楚)项的块,并为每个块创建一个
IEnumerable
。如果是这样,您可以创建一个
列表
来动态创建列表,并使用和link方法“拆分”主列表

试着这样做:

var listOfLists = new List<IEnumerable<string>>();
const int chunkSize = 1000;

int consumed = 0;
while (consumed < IDList.Count)
{
    listOfLists.Add(IDList.Skip(consumed).Take(chunkSize).ToList());
    consumed += chunkSize;
}
var listOfLists=new List();
常量int chunkSize=1000;
int=0;
while(消耗
我不太明白这里的问题。请你详细说明一下。@Thangadurai我正在尝试动态创建一个IEnumerable,以计算给定数字中999的数量,例如当数字为2000时,我可以创建2个IEnumerable,如果数字为5000时,我可以创建5个IEnumerable//我不知道这是否有意义:/或者我太笨了,无法理解这一点done@darby,一个简单的实现方法是将
零件列表
本身作为一个列表,即
IEnumerable零件列表
,并根据需要进行填充。因此,您想将一个列表拆分为几个较小的特定大小的列表吗?@darby能否编辑您的问题并进一步澄清您的问题?不够清楚。在“while”循环中将有多个IDlist枚举,最好将其转换为循环之前的数组,
var IDlist=IDlist as string[]??懒散的人而不是使用
.ToList()
var listOfLists = new List<IEnumerable<string>>();
const int chunkSize = 1000;

int consumed = 0;
while (consumed < IDList.Count)
{
    listOfLists.Add(IDList.Skip(consumed).Take(chunkSize).ToList());
    consumed += chunkSize;
}