动态创建 IEnumerable 集合
Create IEnumerable collections dynamiclly
我遇到了这个问题,我得到了一个包含 5000 和 2000 个条目的列表。
问题是每个人都想使用我必须手动输入的 5000 个条目列表:
IEnumerable<string> partList1;
IEnumerable<string> partList2;
IEnumerable<string> partList3;
IEnumerable<string> partList4;
然后我选择:
partList1 = SplitList(IDList, 0, 999); //args = list,skipvalue,takevalue
而且我必须对所有 4 个列表执行此操作,如果我使用 2000 个条目列表,我只需要两个 partLists。
我怎样才能让它动态地让 999 适合它创建 partLists 本身的列表的频率?
我试过类似的方法:
for(int i = 0; i < IDList.Count() / 999; i++) {
//and here I stuck
}
如果我对您的问题的理解正确,您正试图将一些列表项分成 1000 个(或 999 个;不清楚)项目的块,并为每个块创建一个 IEnumerable<string>
。如果是这样,您可以创建一个 List<IEnumerable<string>>
来动态创建您的列表,并使用 .Skip()
and .Take()
link 方法来 "split" 主列表。
尝试这样的事情:
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;
}
我遇到了这个问题,我得到了一个包含 5000 和 2000 个条目的列表。 问题是每个人都想使用我必须手动输入的 5000 个条目列表:
IEnumerable<string> partList1;
IEnumerable<string> partList2;
IEnumerable<string> partList3;
IEnumerable<string> partList4;
然后我选择:
partList1 = SplitList(IDList, 0, 999); //args = list,skipvalue,takevalue
而且我必须对所有 4 个列表执行此操作,如果我使用 2000 个条目列表,我只需要两个 partLists。 我怎样才能让它动态地让 999 适合它创建 partLists 本身的列表的频率?
我试过类似的方法:
for(int i = 0; i < IDList.Count() / 999; i++) {
//and here I stuck
}
如果我对您的问题的理解正确,您正试图将一些列表项分成 1000 个(或 999 个;不清楚)项目的块,并为每个块创建一个 IEnumerable<string>
。如果是这样,您可以创建一个 List<IEnumerable<string>>
来动态创建您的列表,并使用 .Skip()
and .Take()
link 方法来 "split" 主列表。
尝试这样的事情:
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;
}