Si no se preocupan por la creación de un nuevo diccionario con los elementos deseados y tirar el viejo, simplemente tratar:
dic = dic.Where(i => i.Value.BooleanProperty)
.ToDictionary(i => i.Key, i => i.Value);
Si no se puede crear un nuevo diccionario y la necesidad de modificar la una antigua por alguna razón (como cuando se hace referencia externamente y no se puede actualizar todas las referencias:.
foreach (var item in dic.Where(item => !item.Value.BooleanProperty).ToList())
dic.Remove(item.Key);
Tenga en cuenta que es necesario ToList
aquí, ya que se está modificando la colección subyacente Si cambia la colección subyacente, el enumerador trabajando en para consultar los valores será inutilizable y arrojará una excepción en la siguiente iteración de bucle. ToList
guarda en caché los valores antes de alterar el diccionario.
LINQ hace la vida más fácil! :) – SirDemon