在这个例子中是否有更好的方法来模拟协方差?理想情况下我想这样做:KeyValuePair协方差
private IDictionary<string, ICollection<string>> foos;
public IEnumerable<KeyValuePair<string, IEnumerable<string>> Foos
{
get
{
return foos;
}
}
但KeyValuePair<TKey, TValue>
是不协变的。
相反,我必须做的:
public IEnumerable<KeyValuePair<string, IEnumerable<string>>> Foos
{
get
{
return foos.Select(x =>
new KeyValuePair<string, IEnumerable<string>>(x.Key, x.Value));
}
}
有没有更好/更清洁的方式?