gpt4 book ai didi

c# - LINQ 查询(按项目组分组)

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:01 27 4
gpt4 key购买 nike

我有个小问题。我有一些指标的数据库表,如下所示: DB Table

我想获取 RED 组的列表并最终获取每个组的开始和结束(这是最简单的部分)。你知道怎么做吗?

最佳答案

您可以使用此扩展方法来创建满足您的谓词的序列组

public static IEnumerable<IEnumerable<T>> GroupBySequence<T>(
this IEnumerable<T> source, Func<T, bool> predicate)
{
var iterator = source.GetEnumerator();
List<T> group = new List<T>();
while (iterator.MoveNext())
{
if (predicate(iterator.Current))
{
group.Add(iterator.Current);
continue;
}

if (group.Any())
{
yield return group;
group = new List<T>();
}
}

if (group.Any())
yield return group;
}

用法:

int[] data = { 1, 2, 1, 2, 2, 2, 1 };
var groups = data.GroupBySequence(i => i == 2); // returns [2] and [2,2,2]

关于c# - LINQ 查询(按项目组分组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17803865/

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