using System; using System.Text; using System.IO; using System.Collections; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace miew.Dictionary { public static class Extensions { public static void RemoveWhere<TKey, TValue>(this Dictionary<TKey, TValue> d, Predicate<KeyValuePair<TKey, TValue>> f) { List<TKey> keys_to_remove = new List<TKey>(); foreach (var kvp in d) if (f(kvp)) keys_to_remove.Add(kvp.Key); foreach (TKey k in keys_to_remove) d.Remove(k); } public static void AddMany<TKey, TValue, TSrc>( this Dictionary<TKey, TValue> d, IEnumerable<TSrc> src, Converter<TSrc, TKey> key_selector, Converter<TSrc, TValue> value_selector) { foreach (TSrc e in src) d.Add(key_selector(e), value_selector(e)); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static TValue TryGetValue<TKey, TValue>(this IDictionary<TKey, TValue> dict, TKey key) { TValue v; return dict.TryGetValue(key, out v) ? v : default(TValue); } }; }