You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#统计连续数据组并实现条件触发与切换?

实时数据条件触发解决方案

核心思路

因为是逐分钟实时处理,必须维护持久化的状态变量来跟踪连续序列和组的计数,不能仅单次统计当前数组,而是要每次处理新数据时更新状态。

关键状态变量

需要维护以下状态(可根据运行环境选择全局变量、类属性或数据库存储来持久化):

  • current_streak_val: 当前正在连续的数值(比如2、3或其他)
  • total_2_groups: 累计出现的连续2的序列组数(每段连续的2算一组,不管长度)
  • total_3_groups: 累计出现的连续3的序列组数
  • condition2: 目标条件1,初始为False
  • condition3: 目标条件2(你提到的"另一条件"),初始为False

逐分钟处理逻辑

  1. 连续序列判断:每次拿到新的分钟数据,先判断是否和上一分钟的数值连续:
    • 如果连续,直接延续当前序列,无需统计新组;
    • 如果不连续,先结束上一个连续序列,统计对应的组数量,再切换到新的连续序列。
  2. 条件触发判断:
    • 当连续2的组累计到3组时,立即将condition2设为True(对应你说的第12分钟第三组2开始时触发);
    • 当condition2为True的状态下,连续3的组累计到3组时,将condition3设为True,同时把condition2设为False(对应第29分钟的切换)。

伪代码示例

# 初始化状态
current_streak_val = None
total_2_groups = 0
total_3_groups = 0
condition2 = False
condition3 = False

def process_new_minute_data(new_value, current_minute):
    global current_streak_val, total_2_groups, total_3_groups, condition2, condition3
    
    if new_value == current_streak_val:
        # 连续序列延续,无需统计新组
        pass
    else:
        # 上一个序列结束,统计组
        if current_streak_val == 2:
            total_2_groups += 1
            if total_2_groups == 3 and not condition2:
                condition2 = True
                print(f"第{current_minute}分钟:condition2已设为TRUE")
        elif current_streak_val == 3:
            total_3_groups += 1
            if total_3_groups == 3 and condition2:
                condition3 = True
                condition2 = False
                print(f"第{current_minute}分钟:condition3设为TRUE,condition2设为FALSE")
        # 更新当前连续值
        current_streak_val = new_value
    
    # 处理初始状态(第一次接收数据)
    if current_streak_val is None:
        current_streak_val = new_value
    
    return {"condition2": condition2, "condition3": condition3}

注意事项

如果你的"三组连续的2"是指单组内连续出现3个2(而非3个独立的2序列),只需修改判断逻辑:当current_streak_val == 2且当前连续长度达到3时,累计一个有效计数,直到该计数到3时触发condition2即可。

内容的提问来源于stack exchange,提问作者whiterhino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:31:19