日期:2014-05-17  浏览次数:20822 次

C#怎么根据时间每10分钟一组,10分钟里有的随便取一条,没有的跳过
string BeginDate, string EndDate
foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        OptionsJsonShipList Option1 = new OptionsJsonShipList();
                        Option1.updatetime = dr["updatetime"].ToString();
                        Option1.lo = Convert.ToDecimal(dr["lo"]);
                        Option1.la = Convert.ToDecimal(dr["la"]);
                        Option1.speed = Convert.ToDecimal(dr["speed"]);
                        Option1.direction = dr["direction"].ToString();
                        list.Add(Option1);
                    }

比如数据中的
2011-12-28 13:14:13.000------2011-12-28 13:19:39.000这之间有6条数据随便取一条
2011-12-28 13:20:07.000------2011-12-28 13:28:17.000之间有5条取1条
2011-12-28 13:31:13.000------2011-12-28 13:37:13.000有3条数据取1条

这个就是时间字段,dr["updatetime"].ToString();
BeginDate开始时间到EndDate之间
我想从开始时间每10分钟1组,这组中间如果有多条数据随便取1条 没有的话跳过,直到结束时间
C# 时间 分组 取值

------解决方案--------------------
用timer 如果想不卡到程序的话 就用Thread下的Timer
------解决方案--------------------
用linq去查  每个时间段取第一条
------解决方案--------------------
如果你这是数据集的话,直接用sql,或者用datatable的select函数去根据条件选择就是了
linq当然也没问题,不会就去看msdn
------解决方案--------------------
这貌似属于滑动时间窗口的范畴,应该有专业的解决方案,但是项目中要土办法解决,却也可以。只是有个前提,每次查询你必须知道这个10分钟窗口的开始时间或者结束时间。