c#用于保存只读相关数据的类实现(数据表更好的替代方案)

时间:2012-10-16 10:25:20

标签: c# datatable implementation relationship

我们有一个静态只读信息表,我们需要定期查询。事情是这个数据是相关的,我们需要能够使用任何其他相关属性获取任何属性作为索引 ......

在一两个案例中,其中一个属性可能在行之间重复,但这种情况很少发生......(请参阅示例中的ORDR值)

示例:

formtypex | objectcode | table | description
  149          23         OQUT     Quotation
  139          17         ORDR     Order
  140          18         ORDR     Especial Order

期望的用途是这样的:

//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
...

如何实现这个类/ es的定义和方法?

1 个答案:

答案 0 :(得分:1)

鉴于数据集较小,最好的办法是创建一个包含所有值并将其全部加载到内存中的类(或结构)

public class Relations
{
  public int formtypex;
  public int objectcode;
  public string table;
  public string description;

}

然后,您可以将其放入List中并使用linq进行查询。它是如此之小,以至于迭代列表并不会特别昂贵。

如果您希望它非常简单,那么您可以将函数包装在静态LookupRelations类中。