Esiste un modo migliore per simulare Covariance in questo esempio? Idealmente mi piacerebbe fare:KeyValuePair Covariance
private IDictionary<string, ICollection<string>> foos;
public IEnumerable<KeyValuePair<string, IEnumerable<string>> Foos
{
get
{
return foos;
}
}
Ma KeyValuePair<TKey, TValue>
non è covariante.
Invece quello che devo fare:
public IEnumerable<KeyValuePair<string, IEnumerable<string>>> Foos
{
get
{
return foos.Select(x =>
new KeyValuePair<string, IEnumerable<string>>(x.Key, x.Value));
}
}
C'è un modo migliore/più pulito?