gpt4 book ai didi

LINQ 将列表分区为 8 个成员的列表

转载 作者:行者123 更新时间:2023-12-03 07:07:14 24 4
gpt4 key购买 nike

如何获取一个列表(使用 LINQ)并将其分解为一个列表列表,并在每 8 个条目上对原始列表进行分区?

我想像这样的事情会涉及 Skip 和/或 Take,但我对 LINQ 还很陌生。

编辑:使用 C#/.Net 3.5

Edit2:这个问题的措辞与其他“重复”问题不同。尽管问题相似,但这个问题的答案更好:“接受”的答案都非常可靠(使用 yield 声明)以及 Jon Skeet 使用 MoreLinq 的建议(在“其他”中不推荐)问题。)有时重复是好的,因为它们迫使重新检查问题。

最佳答案

使用以下扩展方法将输入分解为子集

public static class IEnumerableExtensions
{
public static IEnumerable<List<T>> InSetsOf<T>(this IEnumerable<T> source, int max)
{
List<T> toReturn = new List<T>(max);
foreach(var item in source)
{
toReturn.Add(item);
if (toReturn.Count == max)
{
yield return toReturn;
toReturn = new List<T>(max);
}
}
if (toReturn.Any())
{
yield return toReturn;
}
}
}

关于LINQ 将列表分区为 8 个成员的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3773403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com