少し問題があります。次のようないくつかのインジケーターを含むデータベーステーブルがあります。

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]