我創建了一些擴展方法,我想在不同的集合上使用這些擴展方法,主要是那些實現IList
和數組集合[]
當我創建一個擴展方法時,我需要創建2而不是1,以便它可以同時爲通用擴展方法C#
public static IList<T> Shuffle<T>(this IList<T> inputCollection)
{
}
public static T[] Shuffle<T>(this T[] inputCollection)
{
}
工作我的大多數方法需要與索引工作,所以我不能用IEnumerable
是沒有辦法,我可以寫僅有1擴展方法,並用它爲雙方所期望的藏品一些其他的方式?有時我也使用string
這是另一種方法。
如果你要返回一個新的集合,那麼IEnumerable <>就足夠了。但是,你確實不想這麼做,所以ICollection <>是正確的。 –
數組實現'IList',所以你可能不需要其中的一個(取決於實現)。 –
選項1是使用由數組和'List'實現的非泛型'IList'接口,另一個選項是爲實現IList 的數組創建包裝,但是可以從下層數組讀取和寫入,在array ext方法中,您可以'new包裝(數組).ListExtMethod()' –
csharpfolk