1

如果我有一个 CarsDataStore 代表一个类似的表:

Cars
--------------
Ford | Fiesta
Ford | Escort
Ford | Orion
Fiat | Uno
Fiat | Panda

那我可以做

IEnumerable<Cars> fords = CarsDataStore["Ford"];

这是一个坏主意吗?它与我的 api 中的其他数据存储对象(它们都有一个单列 PK 索引器)不一致,我猜大多数人不希望索引器在这种情况下返回一个集合。

4

3 回答 3

2

是的,我认为这是一个坏主意,特别是如果它与 api 的其余部分不一致。一致性是关键,你应该始终努力保持一致。

于 2010-03-25T12:56:41.527 回答
2

我不希望索引器返回一个集合,但是编译器会告诉我如果我遇到任何问题。

但是我个人会按照以下方式实施更多的东西

IEnumerable<Cars> fords = CarsDataStore.GetCarsByType("Ford");
于 2010-03-25T12:56:46.207 回答
2

更改您的主要数据结构,您的问题就会消失(语法可能并不完美):

Dictionary<string, List<string>> cars =
    new Dictionary<string, List<string>>();

cars.Add("Ford", { "Fiesta", "Escort", "Orion" });
cars.Add("Fiat", { "Uno", "Panda" });

IEnumerable<string> fordCars = cars["Ford"];

当然,您必须更改stringCar,但想法是一样的。

于 2010-03-25T12:57:30.617 回答