如何针对一列数据进行测试其连续性。
数据特征:1:每一数据都有其时间戳。2:随时间增长不断向上累加。3:累加值不定,大于等于0。
如 1 3 6 7 12 18... (正确)
   1 3 6 7 12 10... (错误)

解决方案 »

  1.   


     int[] array = { 1,2,3,4};            for (int i = 1; i < array.Length; i++)
                {
                    if (array[i] < array[i - 1])
                        throw new Exception();
                }
      

  2.   

    用DateTable 存数据,然后判断!
      

  3.   

    3#的明显不行,人家数据是不断增长的,数组在定义时是要给定大小的,建议在数据库中建立一个表CREATE TABLE [dbo].[datatable](
    [timestamp] [datetime] NOT NULL,
    [data] [int] NOT NULL,
     CONSTRAINT [PK_datatable] PRIMARY KEY CLUSTERED 
    (
    [timestamp] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    用以下语句获取结果集SELECT [timestamp],[data]
    FROM [master].[dbo].[datatable]
    ORDER BY timestamp
    在程序中获取到结果集放到DATASET中,例如是ds
    遍历ds比较相邻两个值的大小,如果后面的值比前面小,则返回false,return
      

  4.   

    首先非常感谢dotnetstudio的回复。
    一开始俺的思路也是这样的,但是循环比较实在是效率太低了。而且通常情形下,数据量很大。能有些更好的、效率高些的建议吗?
      

  5.   

    查询所以。。把最大的放到一个变量中每次都和下一条比较。如果变量大于查出来的返回false。。如果变量小于查出来的。。赋值给变量。。这方法能行。不过不效率要下班了。。实在没心思想了
      

  6.   

    针对一列数据进行测试其连续性
    你这一列是存储在什么数据结构里?如果在数据库中,直接一条SQL语句就能查出来吧
      

  7.   

    如果在数据库中,直接一条SQL语句就能查出来吧能问下,SQL 语句如何写? 表  Table A
    字段 datetime a1, double a2
      

  8.   

    select top 1 * from tb order by timestamp 比较最大值
    select * from Tb a  
    where cast([value] as int)=[value] 
    not exists(selcet 1  FROM Tb WHERE cast([value] as int)=[value] and 
    is=a.id and a.timestamp<[timestamp] ) 
      

  9.   

    wuyq11 思路不错,但是这样只能监测出是否正确,无法将记录的详细信息(记录id)查出啊!而且如果多个数据错误,这种监测会丢失错误记录啊!