У меня есть функция, которая возвращает IDictionary<TKey, List<TValue> >
.
У меня есть другая функция, которая принимает IDictionary<TKey, IEnumerable<TValue> >
.Как конвертировать IDictionary <TKey, List <TValue>> в IDictionary <TKey, IEnumerable <TValue>>?
Мне нужно передать возврат первой функции ко второй функции.
Компилятор не хочет, чтобы implicitlty конвертировал первый во второй. Итак, как я мог преобразовать первую во вторую в 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 (журнал N).
Смежный вопрос здесь: Nested Interfaces: Cast IDictionary< TKey, IList< TValue > > to IDictionary< TKey, IEnumerable < TValue> >?
Просто любопытно, для чего вы хотите это сделать? –
Ум, позвонишь мне на вторую функцию, не теряя времени, делая конверсию, которая кажется не нужна! –
Если вы хотите O (1). Просто напишите обертку вокруг нее. Я не вижу проблемы, хотя 'List' уже 'IEnumerable '. Где конверсия? –
leppie