2017-06-02 77 views
1

在我的代碼中,我有一個函數處理一些數據,然後返回應該排序的列表。我有2種選擇: - SortedSet - 列表(但它將被排序)哪種返回類型更好? SortedSet或排序的列表

到目前爲止對此返回類型進行的唯一操作是迭代。

性論證的SortedSet: - 它迫使項目恢復到進行排序 - 這意味着返回排序

參數的列表中的項目: - 方沒有需要一套(及複雜的功能),他所需要的只是一份承諾要排序的項目清單。 - 保持界面簡單(無SortedList)

您怎麼看?

+0

爲什麼排序集比排序列表更簡單? –

+2

「到目前爲止,對此返回類型執行的唯一操作是迭代。」這應該在那裏給你答案:*返回調用者迭代必需的最小類型* - 'IEnumerable '。 –

+2

如果您承諾返回的集合已排序,請將該承諾放在方法名稱中而不是返回類型中。 –

回答

4

爲什麼不返回IEnumerable? 這樣,您的其他功能就不必擔心使用專門的SortedSet或List。 對於IEnumerable來說,處理比特定對象更簡單,通常使用接口是一種很好的做法,因爲它可以增加類和項目的靈活性,使其更具可伸縮性。