C#数组搜索与多维数组使用全解析
1. 数组范围匹配搜索
在实际应用中,对数组进行精确匹配搜索并非总是可行的。以邮购公司为例,该公司根据客户订购商品的数量给予不同的折扣,具体折扣规则如下表所示:
| 总订购数量 | 折扣(%) |
| — | — |
| 1 到 12 | 无 |
| 13 到 49 | 10 |
| 50 到 99 | 14 |
| 100 到 199 | 18 |
| 200 或更多 | 20 |
一种不太实用的方法是创建一个单数组来存储折扣率。例如,可以使用一个名为 numOfItems
的变量作为数组的下标,但这样的数组需要数百个条目,如下所示:
double[] discount = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.10, 0.10, 0.10 ...}; // 以此类推
当 numOfItems
为 3 时, discount[numOfItems]
或 discount[3]
为 0;当 numOfItems
为 14 时, discount[numOfItems]
或 discount[14]
为 0.10。由于客户可能订购数千件商品,这种数组会变得非常庞大。
一个更好的选择是创建并行数组。一个数组存储五