c#按项目块划分列表

  • 本文关键字:划分 列表 项目 c#
  • 更新时间 :
  • 英文 :


我得到了一个数据列表,如下所示。在这里,我已经在列表中添加了50个演示项目。现在我想制作一个列表块,每个列表块中有10个项目。我该怎么做?我已经尝试过使用while循环和GroupBy,但我不知道什么是最好的方法?我所需要的只是从这50个项目中,它应该是一个新的列表,将GroupBy10个项目。

型号:

class Data
{
public int Id { get; set; }
public string Text { get; set; }
public static List<Data> data { get; set; } = new List<Data>();
}

主程序:

class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 50; i++)//seeding 50 example data to global class
{
Data.data.Add(new Data
{
Id = i,
Text = null,
});
}

var chunkList = new List<Data>();//i need a chunk of list devided by 10 items in each chunk
int count = 0;
foreach (var item in Data.data)
{
do
{
chunkList.AddRange(chunkList.GroupBy(u => u.Id).Select(grp => grp.ToList()).ToList());//this logic is wrong
count++;
} while (count == 10);

}

Console.WriteLine("");

}

在这里,我找到了最简单的问题解决方案。我正在使用MoreLinq并使用Batch,如下所示。

int size = 10;
var chunkList = Data.data.Batch(size);

最新更新