Voici une solution générale, travaillant non seulement pour les propriétés booléennes des valeurs.
Méthode
Rappel : Les méthodes d'extension doivent être placées dans des classes statiques. N'oubliez pas l'instruction using System.Linq;
en haut du fichier source.
/// <summary>
/// Creates a filtered copy of this dictionary, using the given predicate.
/// </summary>
public static Dictionary<K, V> Filter<K, V>(this Dictionary<K, V> dict,
Predicate<KeyValuePair<K, V>> pred) {
return dict.Where(it => pred(it)).ToDictionary(it => it.Key, it => it.Value);
}
Utilisation
Exemple :
var onlyWithPositiveValues = allNumbers.Filter(it => it.Value > 0);