diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets index 1c239dc61..347ab888d 100644 --- a/src/Directory.Build.targets +++ b/src/Directory.Build.targets @@ -10,4 +10,8 @@ $(DefineConstants);NETSTANDARD;P_LINQ;SUPPORTS_BINDINGLIST;SUPPORTS_ASYNC_DISPOSABLE + + + $(DefineConstants);SUPPORTS_DICTIONARY_MUTATION_DURING_ENUMERATION + diff --git a/src/DynamicData/Cache/Internal/Filter.Dynamic.cs b/src/DynamicData/Cache/Internal/Filter.Dynamic.cs index 9727c04a3..350ae272b 100644 --- a/src/DynamicData/Cache/Internal/Filter.Dynamic.cs +++ b/src/DynamicData/Cache/Internal/Filter.Dynamic.cs @@ -378,7 +378,11 @@ private void OnSourceNext(IChangeSet upstreamChanges) private void ReFilter(TState predicateState) { + #if SUPPORTS_DICTIONARY_MUTATION_DURING_ENUMERATION foreach (var key in _itemStatesByKey.Keys) + #else + foreach (var key in _itemStatesByKey.Keys.ToArray()) + #endif { var itemState = _itemStatesByKey[key];