//Добавляет в Momnets мгновенное значение mv, сохраняя упорядоченность sv по времени public void AddMoment(Moment mv) { if (Moments == null) { Moments = new List <Moment>(); } if (Moments.Count == 0 || mv.Time > Moments[Moments.Count - 1].Time) { Moments.Add(mv); } else if (mv.Time == Moments[Moments.Count - 1].Time) { Moments.Add(mv.Clone(mv.Time.AddMilliseconds(0.6))); } else { int i = Moments.Count - 1; while (i >= 0 && Moments[i].Time >= mv.Time) { i--; } if (mv.Time != Moments[i + 1].Time) { Moments.Insert(i + 1, mv); } } }