title: c# Class implementation to hold readonly related data (datatable better alternative)
body: <p>We have a <strong>static readonly</strong> table of information that we need to consult periodically. The thing is <strong>this data is related</strong> and we need to be able to <strong>get any property using any of the other related properties as index</strong>...</p>
  
  <p>In one or two cases one of the properties could be duplicated between rows but this rarely happens...(see ORDR value in example)</p>
  
  <p>Example:</p>
  
  <pre><code>formtypex | objectcode | table | description
    149          23         OQUT     Quotation
    139          17         ORDR     Order
    140          18         ORDR     Especial Order
  </code></pre>
  
  <p>The desired use would be like this:</p>
  
  <pre><code>//having one property recover another property the easiest and fastest way possible
  string exampleformtypex="149";
  
  string objectcodex=relations.FromFormtypex(exampleformtypex).ObjectCode;
  
  //or a shorter way:
  string objectcodex=relations.Find(exampleformtypex, FindMode.FormTypex).ObjectCode;
  
  //or
  string objectcodex=relations.Find(exampleformtypex, FindMode.FormTypex, ResultMode.ObjectCode);
  
  //or better
  string objectcodex=relations[FindMode.FormTypex, exampleformtypex].ObjectCode;
  
  //or if you can illustrate me with a better aproach
  ...
  </code></pre>
  
  <p>How would be the class/es definition and methods in order to implement this?</p>