/// <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(); }
 }