IDictionary<TKey, List<TValue> >
을 반환하는 함수가 있습니다.
IDictionary<TKey, IEnumerable<TValue> >
을 사용하는 다른 함수가 있습니다.IDictionary <TKey, IEnumerable <TValue>>에 IDictionary <TKey, List <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());
}
을 쓸 수 있었다 그러나 나는이 (1) 더 많은 O와 같은 (로그 n) O되지 않습니다 확신 해요. 여기
이와 관련된 질문 : Nested Interfaces: Cast IDictionary< TKey, IList< TValue > > to IDictionary< TKey, IEnumerable < TValue> >?
궁금한 점이 무엇인가요? –
흠, 필요하지 않은 것으로 보이는 전환을 수행하여 시간을 낭비하지 않고 두 번째 기능을 호출 할 수 있습니다! –
O (1)을 원할 경우. 그냥 주위에 래퍼를 작성하십시오. 'List'는 이미'IEnumerable '이긴하지만 그 문제는 보지 못합니다. 전환은 어디에 있습니까? –
leppie