示例#1
0
        //Добавляет мгновенное значение в список, возвращает количество добавленных значений
        //Если skipEqual, то пропускает значения, равные предыдущим
        private int MomentToList(Moment mv, bool skipEqual = true)
        {
            if (Value == null)
            {
                Value = new SingleValue(SingleType.List);
            }
            var list = Value.Moments;
            var last = list.Count == 0 ? null : list[list.Count - 1];

            if (!skipEqual || last == null || (last.Time < mv.Time && (last != mv || last.Nd != mv.Nd)))
            {
                list.Add(mv);
                return(1);
            }
            return(0);
        }
示例#2
0
 //Изменяет тип данных всех мгновенных значений на dt
 public SingleValue ChangeDataType(DataType dt)
 {
     if (Type == SingleType.Moment && Moment != null && !dt.LessOrEquals(Moment.DataType))
     {
         return(new SingleValue(Moment.Clone(dt)));
     }
     if (Type == SingleType.List && Moments != null && !dt.LessOrEquals(DataType))
     {
         var sv = new SingleValue(SingleType.List);
         foreach (var m in Moments)
         {
             sv.AddMoment(m.Clone(dt));
         }
         return(sv);
     }
     return(this);
 }