BitsetsNET.BitsetContainer.ToArrayContainer C# (CSharp) Метод

ToArrayContainer() публичный Метод

Copies the data to an array container
public ToArrayContainer ( ) : ArrayContainer
Результат ArrayContainer
        public ArrayContainer ToArrayContainer()
        {
            ArrayContainer ac = new ArrayContainer(Cardinality);
            ac.LoadData(this);
            return ac;
        }

Usage Example

Пример #1
0
        /// <summary>
        /// Computes the bitwise OR of this container with another (union). This
        /// container as well as the provided container are left unaffected.
        /// </summary>
        /// <param name="x">Other container</param>
        /// <returns>Aggregated container</returns>
        public override Container Or(ArrayContainer x)
        {
            ArrayContainer value1           = this;
            int            totalCardinality = value1.GetCardinality() + x.GetCardinality();

            if (totalCardinality > DEFAULT_MAX_SIZE)
            {
                // it could be a bitmap!
                BitsetContainer bc = new BitsetContainer();
                for (int k = 0; k < x.Cardinality; ++k)
                {
                    ushort v = x.Content[k];
                    int    i = v >> 6;
                    bc.Bitmap[i] |= 1L << v;
                }

                for (int k = 0; k < Cardinality; ++k)
                {
                    ushort v = Content[k];
                    int    i = v >> 6;
                    bc.Bitmap[i] |= 1L << v;
                }

                bc.Cardinality = 0;
                foreach (long k in bc.Bitmap)
                {
                    bc.Cardinality += Utility.LongBitCount(k);
                }

                if (bc.Cardinality <= DEFAULT_MAX_SIZE)
                {
                    return(bc.ToArrayContainer());
                }

                return(bc);
            }

            // remains an array container
            int desiredCapacity = totalCardinality; // Math.min(BitmapContainer.MAX_CAPACITY,

            // totalCardinality);
            ArrayContainer answer = new ArrayContainer(desiredCapacity);

            answer.Cardinality = Utility.UnsignedUnion2by2(value1.Content, value1.GetCardinality(), x.Content, x.GetCardinality(), answer.Content);
            return(answer);
        }
All Usage Examples Of BitsetsNET.BitsetContainer::ToArrayContainer