1) For Dictionary Extension methods, LINQ are not thread safe, because the class itself is not thread safe, but for ConcurrentDictionary it is thread safe and therefore calls LINQ extension functions for it is thread safe.
Edit:
2) Is it safe to assume the operations within the method body including indexers I don't know what you mean by including indexers , but if you mean that the dictionaries are not empty. then for Dictionary you should not consider that it contains elements .. however for ConcurrentDictionary you can use methods such as: AddOrUpdate();, GetOrAdd();, TryAdd();, TryGetValue();
source share