Multi-key dictionary/list
<p>We have a multi-tenant application with running site instances stored in a <code>ConcurrentDictionary&lt;string, SiteInstance&gt;</code>, where <code>string</code> is the hostname of the site.</p>

<p>We now have the requirement to support multiple hostnames per site instance. As a temporary solution I'm searching first by key and if no match is found, then performing a LINQ query against the dictionary to find an instance with a matching hostname. </p>

<p>Is there a better/faster performing solution here? </p>

<p>Note: The list of hostnames mapped to each site instance is variable.</p>
