我喜欢将列表拆分为多个列表,列表包含GUID。例如,如果主列表包含130个GUID,则我将阈值保持为50,因此它应该返回,3个列表,第1个和第2个列表应该包含50个列表,第3个列表将具有30个GUID。
我们怎么做?请帮帮我!!
答案 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撰写的MoreLinq
:
google code(可在nuget上找到)
您要查找的方法是Batch
:
using MoreLinq
...
IEnumerable<IEnumerable<Guid>> result = enumerableGuids.Batch(50);
答案 2 :(得分:0)
您可以使用此代码。在这里我使用字符串进行演示,您可以使用read_sql()
。
guid