C# dictionary or just keep using lists?
<p>I'm using a list to store a pair of hexadecimal values (eg. in the list AD38F2D8, displayed as:Value_A: AD 38 F2 D8).</p>

<p>My question is should I use a <code>Dictionary&lt;string, string&gt;</code> or should I use  <code>Dictionary&lt;string, NewCustomObject&gt;</code> to store the hexadecimal string as a pair of strings. (Value: [AD, 38, F2, D8]) instead of (Value: AD38F2D8).</p>

<p>It probably won't make to much of a difference between the two.</p>

<p>With <code>Dictionary&lt;string, string&gt;</code> I would just store each hex string in the dictionary, and then split them up in their respective pairs when I need them. 
if I use the <code>Dictionary&lt;string, NewCustomObject&gt;</code> I would end up first splitting the hex strings in their respective pairs and then store them in the dictionary.</p>

<p>My question is which should I use? Or should I just keep using lists?</p>

<p>It's not entirely necessary for me to use <code>Dictionary&lt;string, string&gt;</code> as I would still know which index what string is on, just that it would look nicer.</p>

<p>List example:</p>

<pre><code>Index = 0,  Value = 3D95FF08
Index = 1,  Value = 8D932A08
</code></pre>

<p><code>Dictionary&lt;string, string&gt;</code> example:</p>

<pre><code>Index = 0, Key = First,  Value = 3D95FF08
Index = 1, Key = Second, Value = 8D932A08
</code></pre>

<p><code>Dictionary&lt;string, NewCustomObject&gt;</code> example:</p>

<pre><code>Index = 0, Key = First,  Value = 3D, 95, FF, 08
Index = 1, Key = Second, Value = 8D, 93, 2A, 08
</code></pre>

<p>NOTE: the Index value in each dictionary example is just to show the corespondence to the others, I know a dictionary does not have Index values but uses keys instead. it's just makes it easier to look at this example.</p>

<p>I came across the last Dictionary string here: <a href="http://stackoverflow.com/questions/1500835/c-dictionary-with-two-values-per-key">C# Dictionary with two Values per Key?</a>
I was searching for it as I have used that way several times while writing python code. by storing a list of strings within a dictionary.</p>

<p>Thanks in advance for any help!</p>

<p><strong>EDIT</strong></p>

<p>Each string in either the list or dictionary, would be split in their respective bytes. 
EG.</p>

<pre><code>BYTE   0   1   2   3 to  6 .....
HEX    AD  12  01  0000859D  .....
</code></pre>

<p>Byte 0 would hold the Index 
Byte 1 would hold the Reference
Byte 2 the Flags
Byte 3 to 6: The Memb_Number_ID</p>

<p>Therefore, if I split them up before possibly putting these in the dictionary I don't have to do it before I use them in their respective place as I would have to split them up to calculate the index, reference and flags.</p>

<p>The database was given to me in this format, I am forced to work with it the way it currently is, so i can not change it. and can only adapt my code to it.</p>

<p>above example would be outputted as:</p>

<pre><code>Index  Reference Link    Flags          Memb_Number_ID
173     18               +A             John (ID: 34205)
</code></pre>
