 <p>If there's an outside chance that the order of <code>[i]</code> is not in a predictable order, or possibly has gaps, but you need to use it as a key:</p> <pre><code>public class Thing { int SubjectID { get; set; } int VarNumber { get; set; } string VarName { get; set; } string Title { get; set; } } Dictionary&lt;int, Thing&gt; things = new Dictionary&lt;int, Thing&gt;(); dict.Add(i, thing); </code></pre> <p>Then to find a <code>Thing</code>:</p> <pre><code>var myThing = things[i]; </code></pre>