通常,提供接受數組的方法可以被優化以接受更通用的類別,這些類別都是IEnumerable
並且需要Count
或Length
。提供哪種參數類型是IEnumerable並具有Count?
實施例:
public static T NextObject<T>(this Random random, T[] array)
{
return array[random.Next(array.Length)];
}
在這裏,我使用Array
獲取特定的元件,知道元素的量。以一般方式,哪類最適合?
- 的IList
- ICollection的 - 也有
Count
- 其他接口或類或一組不同的接口?
我認爲,IEnumerable
可能不是一個好主意,因爲Count()
可以對性能產生副作用,如果底層枚舉更爲複雜。
我會建議使用'ICollection',但我認爲這有點基於*意見*。 –
MarcinJuraszek
'ICollection'沒有索引器。我認爲這個和'Array'作爲兩個重載可以*(不確定)*覆蓋所有類型。我不認爲這是基於意見的,因爲這個問題基本上覆蓋了所有常見類型,並且重載最少。 –
bytecode77
爲什麼不簡單列表? –