/// <summary> /// 指定された時間のLabels.Valuesのインデックスを返します。 /// </summary> /// <param title="time">指定する時間</param> /// <returns>インデックス</returns> public int GetLabelIndexAt(decimal time) { int ret = CollectionEx.GetLastIndexBeforeKey <decimal, string>(_labelBorders, time, _prevIndex, 1); _prevIndex = ret; return(ret); }
/// <summary> /// 指定された値以下の最も近い境界のインデックスを取得します。存在しない場合は-1を返します。 /// </summary> /// <param name="value"></param> /// <returns></returns> public int GetIndexFromValue(decimal value) { _rwLock.EnterReadLock(); try { int ret = CollectionEx.GetLastIndexBeforeKey <decimal, string>(__borders, value, _prevIndex, 1); _prevIndex = ret; return(ret); } finally { _rwLock.ExitReadLock(); } }
/// <summary> /// 指定された時間におけるインデックスを返します. /// </summary> /// <param name="time"></param> /// <param name="firstIndex"></param> /// <returns></returns> public int GetIndexAt(decimal time, int firstIndex) { _rwLock.EnterReadLock(); try { int ret = CollectionEx.GetLastIndexBeforeKey <decimal, decimal?[]>(_sequence, time, firstIndex, 1); _prevIndex = ret; return(ret); } finally { _rwLock.ExitReadLock(); } }