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
{
/// <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>
/// Removes the first key with a value matching the given value.
/// </summary>
@@ -22,10 +38,7 @@ namespace ICD.Common.Utils.Extensions
throw new ArgumentNullException("extends");
TKey key;
if (!extends.TryGetKey(value, out key))
return false;
return extends.Remove(key);
return extends.TryGetKey(value, out key) && extends.Remove(key);
}
/// <summary>