public static Dictionary <TKeyTarget, TValueTarget> FullCast <TKeySource, TValueSource, TKeyTarget, TValueTarget>(this IDictionary <TKeySource, TValueSource> @this) => @this.ToDictionary(kvp => (TKeyTarget)(object)kvp.Key, kvp => (TValueTarget)(object)kvp.Value);