我有一个返回IDictionary<TKey, List<TValue> >
.
我有另一个需要IDictionary<TKey, IEnumerable<TValue> >
.
我需要将第一个函数的返回值传递给第二个函数。
编译器不想将第一个隐式转换为第二个。那么如何在 O(1) 中将第一个转换为第二个呢?
我总是可以写一个转换函数
public static IDictionary<TKey, IEnumerable<TValue>> ToIEnumerable<TKey, TValue>(this IDictionary<TKey, List<TValue>> source)
{
return source.ToDictionary(s => s.Key, s => s.Value.AsEnumerable());
}
但我很确定这不是 O(1),更像是 O(log n)。
这里有一个相关问题:嵌套接口:Cast IDictionary< TKey, IList< TValue >> to IDictionary< TKey, IEnumerable < TValue>>?