You can cast the ReadOnlyDictionary
to an IReadOnlyDictionary
:
target = new ReadOnlyDictionary<string, IReadOnlyDictionary<Guid, int>>(
data.ToDictionary(
i => i.Item,
v => (IReadOnlyDictionary<Guid, int>)new ReadOnlyDictionary<Guid, int>(
v.Values.ToDictionary(
a => Guid.NewGuid(),
b => b))));
Or specify the interface type as a generic argument to ToDictionary
:
target = new ReadOnlyDictionary<string, IReadOnlyDictionary<Guid, int>>(
data.ToDictionary<string, IReadOnlyDictionary<Guid, int>>(
i => i.Item,
v => new ReadOnlyDictionary<Guid, int>(
v.Values.ToDictionary(
a => Guid.NewGuid(),
b => b))));