public static TempHashSet <T> GetSet(IEnumerable <T> e) { TempHashSet <T> result; if (_pool.TryGetInstance(out result)) { var le = LightEnumerator.Create <T>(e); while (le.MoveNext()) { result.Add(le.Current); } } else { result = new TempHashSet <T>(e); } return(result); }
public static TempDictionary <TKey, TValue> GetDict(IDictionary <TKey, TValue> dict) { TempDictionary <TKey, TValue> result; if (_pool.TryGetInstance(out result)) { var le = LightEnumerator.Create(dict); while (le.MoveNext()) { result.Add(le.Current.Key, le.Current.Value); } } else { result = new TempDictionary <TKey, TValue>(dict); } return(result); }
public static TempList <T> GetList(IEnumerable <T> e) { TempList <T> result; if (_pool.TryGetInstance(out result)) { //result.AddRange(e); var e2 = new LightEnumerator <T>(e); while (e2.MoveNext()) { result.Add(e2.Current); } } else { result = new TempList <T>(e); } return(result); }