コード例 #1
0
 private T ToPlainCollection <T>(T cl)
     where T : ICollection <E>
 {
     int[] intdata = data;
     for (int bindex = 0; bindex < intdata.Length; bindex++)
     {
         int block = intdata[bindex];
         if (block != 0)
         {
             int index = bindex << 5;
             // * 32
             for (int i = 31; i >= 0; i--)
             {
                 if ((block & 1) != 0)
                 {
                     cl.Add(colValuesInternal.GetKey(index));
                 }
                 index++;
                 block = (int)(((uint)block) >> 1);
             }
         }
     }
     return(cl);
 }
コード例 #2
0
            public virtual HashSet <E> ToPlainSet()
            {
                HashSet <E> set = new HashSet <E>();

                int[] intdata = data;
                int   size    = data.Length * 32;

                if (size > colValuesInternal.Count)
                {
                    size = colValuesInternal.Count;
                }
                for (int i = size - 1; i >= 0; i--)
                {
                    int[] index = colValuesInternal[i];
                    if ((intdata[index[0]] & index[1]) != 0)
                    {
                        set.Add(colValuesInternal.GetKey(i));
                    }
                }
                return(set);
            }