<p>I have a generic class in C# with 2 constructors:</p>

<pre><code>public Houses(params T[] InitialiseElements)
{}
public Houses(int Num, T DefaultValue)
{}
</code></pre>

<p>Constructing an object using int as the generic type and passing in two ints as arguments causes the 'incorrect' constructor to be called (from my point of view).</p>

<p>E.g. <code>Houses&lt;int&gt; houses = new Houses&lt;int&gt;(1,2)</code> - calls the 2nd construtor. Passing in any other number of ints into the constructor will call the 1st constructor.</p>

<p>Is there any way around this other than removing the params keyword and forcing users to pass an array of T when using the first constructor?</p>

Perhaps instead of Params you could pass in IEnumerable
```
```
public Houses(IEnumerable<T> InitialiseElements){}
```
```