public static PointPairList ToSlice(this PointPairList list, double min, double max) { if (max <= min) { min = 0; max = 1; } PointPairList temp = new PointPairList(); int minindex = list.IndexOf(list.FirstOrDefault(a => a.X >= min)); minindex = minindex < 0 ? 0 : minindex; int maxindex = list.FindLastIndex(delegate(PointPair pp) { return pp.X <= max; }); temp.AddRange(list.GetRange(minindex, maxindex - minindex)); return temp; }
private PointPairList getPoints(Type t, string field, int channel) { PointPairList p = new PointPairList(); lock (uavobjectData) { p.AddRange( uavobjectData.Where(j => j.type == t && j.fieldName == field && j.channel == channel) .Select(h => new PointPair( (double)h.timestamp, h.value ) )); } return p; }