を返す関数がありIDictionary<TKey, List<TValue> >
ます。
を取る別の関数がありIDictionary<TKey, IEnumerable<TValue> >
ます。
最初の関数の戻り値を 2 番目の関数に渡す必要があります。
コンパイラは、最初のものを 2 番目のものに暗黙的に変換したくありません。では、O(1) で 1 番目を 2 番目に変換するにはどうすればよいでしょうか?
私はいつでも変換関数を書くことができました
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) のようなものだと確信しています。