私はILookup<TKey,TElement> lookupかなり頻繁に要素を取得し、LINQ または を使用してそれらを反復処理するを持っていforeachます。私はこのように見上げますIEnumerable<TElement> results = lookup[key];。
したがって、resultsルックアップ結果を使用するたびに少なくとも 1 回列挙する必要があります (最初に .ToList() を使用しない場合は、複数回反復する場合はさらに)。
「クリーン」ではありませんがDictionary<TKey,List<TElement>>、キーからのすべての結果が辞書の構築時にのみ列挙されるように、を使用する方が (パフォーマンス的に) 優れているのではないでしょうか? ToList() はどのくらい負担が大きいのでしょうか?