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