FastQuant.TimeSeries.GetIndex C# (CSharp) Méthode

GetIndex() public méthode

public GetIndex ( System.DateTime datetime, IndexOption option = IndexOption.Null ) : int
datetime System.DateTime
option IndexOption
Résultat int
        public virtual int GetIndex(DateTime datetime, IndexOption option = IndexOption.Null)
        {
            int num = 0;
            int num2 = 0;
            int num3 = (int)this.series.Count - 1;
            bool flag = true;
            while (flag)
            {
                if (num3 < num2)
                {
                    return -1;
                }
                num = (num2 + num3) / 2;
                switch (option)
                {
                    case IndexOption.Null:
                        if (this.series[(long)num].DateTime == datetime)
                        {
                            flag = false;
                        }
                        else if (this.series[(long)num].DateTime > datetime)
                        {
                            num3 = num - 1;
                        }
                        else if (this.series[(long)num].DateTime < datetime)
                        {
                            num2 = num + 1;
                        }
                        break;
                    case IndexOption.Next:
                        if (this.series[(long)num].DateTime >= datetime && (num == 0 || this.series[(long)(num - 1)].DateTime < datetime))
                        {
                            flag = false;
                        }
                        else if (this.series[(long)num].DateTime < datetime)
                        {
                            num2 = num + 1;
                        }
                        else
                        {
                            num3 = num - 1;
                        }
                        break;
                    case IndexOption.Prev:
                        if (this.series[(long)num].DateTime <= datetime && ((long)num == this.series.Count - 1L || this.series[(long)(num + 1)].DateTime > datetime))
                        {
                            flag = false;
                        }
                        else if (this.series[(long)num].DateTime > datetime)
                        {
                            num3 = num - 1;
                        }
                        else
                        {
                            num2 = num + 1;
                        }
                        break;
                }
            }
            return num;
        }