public static RecycleList <T> MakeValueEnumerable <TStructEnumerable>(ref TStructEnumerable enumerable) where TStructEnumerable : struct, IEnumerable <T> { RecycleList <T> list = RecycleList <T> .Make(); list.AddRange((TStructEnumerable)enumerable); return(list); }
public static RecycleList <T> Make <TClassEnumerable>(TClassEnumerable enumerable) where TClassEnumerable : class, IEnumerable <T> { RecycleList <T> list = RecycleList <T> .Make(); list.AddRange(enumerable); return(list); }
public static RecycleList <T> MakeFromValuedEnumerator <TEnumerator>(ref TEnumerator enumerator) where TEnumerator : struct, IEnumerator <T> { RecycleList <T> list = RecycleList <T> .Make(); while (enumerator.MoveNext()) { list.Add((T)enumerator.Current); } enumerator.Dispose(); return(list); }
public static void Bin(ref RecycleList <T> list) { if (list != null) { if (list.bound) { RecycleList <T> .bin.AddLast(list); list.bound = false; } list = null; } }
public static RecycleList <T> Make() { RecycleList <T> recycleList; if (RecycleList <T> .binCount <= 0) { recycleList = new RecycleList <T>(); } else { recycleList = RecycleList <T> .bin.First.Value; RecycleList <T> .bin.RemoveFirst(); RecycleList <T> .binCount = RecycleList <T> .binCount - 1; } recycleList.bound = true; return(recycleList); }
public RecycleList <T> SymmetricExceptList(IEnumerable <T> exceptWith) { RecycleList <T> list = null; try { HSet <T> .temp.UnionWith(this); HSet <T> .temp.SymmetricExceptWith(exceptWith); list = HSet <T> .temp.ToList(); } finally { HSet <T> .temp.Clear(); } return(list); }
public RecycleList <T> IntersectList(IEnumerable <T> intersectWith) { RecycleList <T> list = null; try { HSet <T> .temp.UnionWith(this); HSet <T> .temp.IntersectWith(intersectWith); list = HSet <T> .temp.ToList(); } finally { HSet <T> .temp.Clear(); } return(list); }
public static RecycleList <T> Make() { RecycleList <T> list; if (RecycleList <T> .binCount > 0) { list = RecycleList <T> .bin.First.Value; RecycleList <T> .bin.RemoveFirst(); RecycleList <T> .binCount--; } else { list = new RecycleList <T>(); } list.bound = true; return(list); }
public void Dispose() { RecycleList <T> recycleList = this; RecycleList <T> .Bin(ref recycleList); }
public RecycleList <T> Clone() { return(RecycleList <T> .Make <RecycleList <T> >(this)); }
private RecycleList <T> ToList() { HSetIter <T> enumerator = this.GetEnumerator(); return(RecycleList <T> .MakeFromValuedEnumerator <HSetIter <T> >(ref enumerator)); }
public void Dispose() { RecycleList <T> .Bin(ref list); }