Is it possible in C# to create a System.Collections.Generic.Dictionary where TKey is unconditioned class and TValue
If you would like to initialize an empty dictionary you could do something like the this:
var emptyDict = Enumerable
.Empty<(int, string)>()
.ToDictionary(
x => new { Id = x.Item1 },
x => new { Column = x.Item2, Localized = x.Item2});
Basically you just need an empty enumerable with a tuple that has the types you want to use in your final anonymous types and then you can get an empty dictionary that is typed the way you'd like.
If you wanted to you could name the types in the tuple as well:
var emptyDict = Enumerable
.Empty<(int anInt, string aString)>()
.ToDictionary(
x => new { Id = x.anInt },
x => new { Column = x.aString, Localized = x.aString});