Extension method for removing a sequence of keys from a dict

This commit is contained in:
Chris Cameron
2018-02-06 16:59:29 -05:00
parent 3eb4fa9e92
commit 232a52d608

View File

@@ -7,6 +7,22 @@ namespace ICD.Common.Utils.Extensions
{ {
public static class DictionaryExtensions public static class DictionaryExtensions
{ {
/// <summary>
/// Removes all of the given keys from the dictionary.
/// </summary>
/// <typeparam name="TKey"></typeparam>
/// <typeparam name="TValue"></typeparam>
/// <param name="extends"></param>
/// <param name="keys"></param>
public static void RemoveAll<TKey, TValue>(this IDictionary<TKey, TValue> extends, IEnumerable<TKey> keys)
{
if (extends == null)
throw new ArgumentNullException("extends");
foreach (TKey key in keys)
extends.Remove(key);
}
/// <summary> /// <summary>
/// Removes the first key with a value matching the given value. /// Removes the first key with a value matching the given value.
/// </summary> /// </summary>
@@ -22,10 +38,7 @@ namespace ICD.Common.Utils.Extensions
throw new ArgumentNullException("extends"); throw new ArgumentNullException("extends");
TKey key; TKey key;
if (!extends.TryGetKey(value, out key)) return extends.TryGetKey(value, out key) && extends.Remove(key);
return false;
return extends.Remove(key);
} }
/// <summary> /// <summary>