4
using System.Collections;
5
using System.Collections.Generic;
6
using System.Collections.ObjectModel;
8
internal static class Collections
10
public static bool AddAll<T> (ICollection<T> list, IEnumerable toAdd)
12
foreach (T t in toAdd)
17
public static V Remove<K, V> (IDictionary<K, V> map, K toRemove) where K : class
20
if (map.TryGetValue (toRemove, out local)) {
21
map.Remove (toRemove);
27
public static object[] ToArray (ArrayList list)
29
return list.ToArray ();
32
public static T[] ToArray<T> (ICollection<T> list)
34
T[] array = new T[list.Count];
35
list.CopyTo (array, 0);
39
public static U[] ToArray<T,U> (ICollection<T> list, U[] res) where T:U
41
if (res.Length < list.Count)
42
res = new U [list.Count];
48
if (res.Length > list.Count)
49
res [list.Count] = default (T);
53
public static IDictionary<K,V> EmptyMap<K,V> ()
55
return new Dictionary<K,V> ();
58
public static IList<T> EmptyList<T> ()
63
public static ICollection<T> EmptySet<T> ()
68
public static IList<T> NCopies<T> (int n, T elem)
70
List<T> list = new List<T> (n);
77
public static void Reverse<T> (IList<T> list)
79
int end = list.Count - 1;
83
list [index] = list [end];
90
public static ICollection<T> Singleton<T> (T item)
92
List<T> list = new List<T> (1);
97
public static IList<T> SingletonList<T> (T item)
99
List<T> list = new List<T> (1);
104
public static IList<T> SynchronizedList<T> (IList<T> list)
106
return new Sharpen.SynchronizedList<T> (list);
109
public static ICollection<T> UnmodifiableCollection<T> (ICollection<T> list)
114
public static IList<T> UnmodifiableList<T> (IList<T> list)
116
return new ReadOnlyCollection<T> (list);
119
public static ICollection<T> UnmodifiableSet<T> (ICollection<T> list)
124
public static IDictionary<K,V> UnmodifiableMap<K,V> (IDictionary<K,V> dict)