namespace SharedContracts.Extensions; public static class DictionaryExtensions { public static ConcurrentDictionary ToConcurrentDictionary( this IEnumerable source, Func keySelector, Func valueSelector) where TKey : notnull { var concurrentDictionary = new ConcurrentDictionary(); foreach (var element in source) { concurrentDictionary.TryAdd(keySelector(element), valueSelector(element)); } return concurrentDictionary; } }