In .NET 3.5 (and C# 3.5, or VB9) you could do the following:
// build a dictionary with some dummy data.
Dictionary<int, string> store = new Dictionary<int, string>
{
{1, "test1"}, {2, "test2"}, {3, "test3"}, {4, "test4"}, {5, "test5"}
};
// filter by key. get all keys that are higher than 3 and select only the key value.
// put the result into a list.
var keys = store.Where(x => x.Key > 3).Select(x => x.Key).ToList();
// the following call is the same as the line above.
// var keys = (from s in store
// where s.Key > 3
// select s.Key).ToList();
// loop over the keys and remove from the dictionary.
foreach (var key in keys)
{
store.Remove(key);
}