[英]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.