BitsetsNET.RoaringBitset.Select C# (CSharp) Method

Select() public method

public Select ( int j ) : int
j int
return int
        public int Select(int j)
        {
            int leftover = j;
            for (int i = 0; i < this.containers.Size; i++)
            {
                Container c = this.containers.GetContainerAtIndex(i);
                int thisCardinality = c.GetCardinality();
                if (thisCardinality > leftover)
                {
                    uint keycontrib = (uint) this.containers.GetKeyAtIndex(i) << 16;
                    uint lowcontrib = (uint) c.Select(leftover);
                    return (int) (lowcontrib + keycontrib);
                }
                leftover -= thisCardinality;
            }
            throw new ArgumentOutOfRangeException("select " + j + " when the cardinality is " + this.Cardinality());
        }