我正在尝试制作一个扩展方法,该方法将随机播放通用列表集合的内容,而不管其类型如何,但是我不确定在 <..> 之间放置什么作为参数。我放对象吗?或类型?我希望能够在我拥有的任何 List 集合上使用它。
谢谢!
public static void Shuffle(this List<???????> source)
{
Random rnd = new Random();
for (int i = 0; i < source.Count; i++)
{
int index = rnd.Next(0, source.Count);
object o = source[0];
source.RemoveAt(0);
source.Insert(index, o);
}
}
最佳答案
你需要让它成为一个泛型方法:
public static void Shuffle<T>(this List<T> source)
{
Random rnd = new Random();
for (int i = 0; i < source.Count; i++)
{
int index = rnd.Next(0, source.Count);
T o = source[0];
source.RemoveAt(0);
source.Insert(index, o);
}
}
这将允许它与任何 List<T>
一起工作.
关于c# - 如何在 C# 中为泛型列表类型扩展方法指定参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280889/