Gibt es eine bessere Möglichkeit, Covariance in diesem Beispiel nachzuahmen? Im Idealfall würde ich gerne tun:KeyValuePair Covariance
private IDictionary<string, ICollection<string>> foos;
public IEnumerable<KeyValuePair<string, IEnumerable<string>> Foos
{
get
{
return foos;
}
}
Aber KeyValuePair<TKey, TValue>
nicht covariant ist.
Stattdessen muß ich tun:
public IEnumerable<KeyValuePair<string, IEnumerable<string>>> Foos
{
get
{
return foos.Select(x =>
new KeyValuePair<string, IEnumerable<string>>(x.Key, x.Value));
}
}
Gibt es einen besseren/sauberen Weg?