c# - 通用扩展方法 C#

标签 c# arrays list generics collections

我正在创建一些我想在不同集合上使用的扩展方法,主要是那些实现 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/

相关文章:

带有字段和子对象数组的 JavaScript 对象数组?

Python:检测共享单词的字符串

java - 单击时如何更改 jButton 值

c# - VS2010 : Autogenerated XML documentation file does not update

JavaScript - 合并两个对象数组并根据属性值进行重复数据删除

c# - 如果使用可为空的 int 变量,LINQ 返回 0 个结果,如果使用 "null",则返回准确的结果

python - 更改 numpy 数组中字符串的位置

Python - 将字典列表拆分为单独的字典

javascript - 从jquery添加的html控件触发asp.net事件

c# - linq 我将如何订购此声明