 <p>I'd start with this:</p> <pre><code>... List&lt;ISomething&gt; instances = new List&lt;ISomething&gt;({new SomeType1(), new SomeType2(),...}); ... List&lt;ISomething&gt; PopulateItemRows() { itemRows = new HashSet&lt;ISomething&gt;(); foreach(ISomething instance in instances) { itemRows.UnionWith(instance.Collection()); } } </code></pre>