将列表拆分为C#中的子列表

时间:2015-10-09 09:21:51

标签: c#

我喜欢将列表拆分为多个列表,列表包含GUID。例如,如果主列表包含130个GUID,则我将阈值保持为50,因此它应该返回,3个列表,第1个和第2个列表应该包含50个列表,第3个列表将具有30个GUID。

我们怎么做?请帮帮我!!

3 个答案:

答案 0 :(得分:0)

您可以使用以下LINQ查询:

 // your sample list
 List<Guid> guids = Enumerable.Range(0, 130).Select(i => Guid.NewGuid()).ToList();

 List<List<Guid>> splitted = guids
    .Select((guid, index) => new { guid, index })
    .GroupBy(x => x.index / 50)
    .Select(g => g.Select(x => x.guid).ToList())
    .ToList();

基本方法是Enumerable.GroupBy,它按索引/ 50对它们进行分组。因为整数除法会截断得到50的组的小数部分。

答案 1 :(得分:0)

您可以使用Jon Skeet撰写的MoreLinqgoogle code(可在nuget上找到)

您要查找的方法是Batch

using MoreLinq
...
IEnumerable<IEnumerable<Guid>> result = enumerableGuids.Batch(50);

答案 2 :(得分:0)

您可以使用此代码。在这里我使用字符串进行演示,您可以使用read_sql()

guid