在C#中表示此查找表的最佳方法

3 c# lookup-tables

我需要在C#中表示一个查询表,这是基本结构:

Name    Range   Multiplier

Active  10-20   0.5
Run Code Online (Sandbox Code Playgroud)

你们有什么建议?

我将需要查找范围并检索乘数。我还需要使用该名称进行查找。

UPdate 总共可能有10-15行。范围是整数日期类型。

Joe*_*orn 5

您实际拥有的是两个查询表:一个按名称,一个按范围。根据表的大小,可以用几种方法在内存中表示它们。

最可能适合“按名称”查找的是字典:

var MultiplierByName = new Dictionary<string, double>() { {"Active",.5}, {"Other", 1.0} };
Run Code Online (Sandbox Code Playgroud)

范围比较棘手。为此,您可能只想存储最小值或最大值,这取决于范围的工作方式。您可能还需要编写一个函数,以将任何给定的整数减少为其相应的存储键值(提示:使用整数除法或mod运算符)。

从那里您可以选择另一个字典(Dictionary<int, double>),或者如果可以正确地工作,则可以使reduce函数返回一个连续的int并使用a,List<double>以便您的“键”仅成为索引。

但是就像我说的那样:为了确定最好的方法,我们真的需要知道查询中数据的范围和性质以及用于访问数据的方案。