簡體   English   中英

從索引器返回IEnumerable,不好的做法嗎?

[英]Returning IEnumerable from an indexer, bad practice?

如果我有一個CarsDataStore代表一個表,例如:

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

那我就可以

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

這是一個壞主意嗎? 它與我的api中的其他數據存儲對象(均具有單個列PK索引器)不一致,並且我猜大多數人不希望索引器在這種情況下返回集合。

是的,我認為這是個壞主意,特別是如果它與其他api不一致。 一致性是關鍵,您應該始終保持一致。

我不希望索引器返回一個集合,但是編譯器會告訴我,如果遇到任何問題。

但是,我個人會按照

IEnumerable<Cars> fords = CarsDataStore.GetCarsByType("Ford");

更改主數據結構,問題就消失了(語法可能並不完美):

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"];

當然,您必須將string更改為Car ,但是想法是相同的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM