我正在创建一些我想在不同集合上使用的扩展方法,主要是那些实现 IList
和数组集合 []
的扩展方法,每当我创建一个扩展方法时我需要创建 2 个而不是 1 个,这样它就可以为两者工作
public static IList<T> Shuffle<T>(this IList<T> inputCollection)
{
}
public static T[] Shuffle<T>(this T[] inputCollection)
{
}
我的大多数方法都需要使用索引,所以我不能使用 IEnumerable
是否有其他方法可以让我只编写 1 个扩展方法并将其用于两个所需的集合?有时我也使用 string
,这是另一种方法。
最佳答案
你可以试试
public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> value)
签名;并使用它
IList<T> list = Shuffle(myList).ToList();
T[] array = Shuffle(myArray).ToArray();
甚至
IList<T> list = myList.Shuffle().ToList();
T[] array = myArray.Shuffle().ToArray();
关于c# - 通用扩展方法 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071845/