【发布时间】:2020-07-23 11:40:08
【问题描述】:
我想知道是否可以创建一个通用的多维参数。我正在制作一个通用列表/数组洗牌类,它将有一个静态方法,该方法获取一个 IEnumerable 参数并返回相同但已经洗牌。问题是我不知道如何使参数如此通用以至于它可以获得任意数量的维度数组/列表。
提前谢谢你。
这是我现在写的代码:
public static IEnumerable<T> OneDimensionalShuffle<T>(IEnumerable<T> array)
{
var originalList = array.ToList();
var shuffledList = new List<T>();
var rand = new Random();
for (var i = originalList.Count - 1; i >= 0; i--)
{
var randomArrayPosition = rand.Next(i + 1); //i+1 because maxValue is exclusive
shuffledList.Add(originalList[randomArrayPosition]); //Add random point to the shuffledList
originalList.RemoveAt(randomArrayPosition); //Remove element which was already added to shuffledList
}
array = shuffledList;
return array;
}
【问题讨论】:
-
能否请您出示有关此事的当前代码?用它来指导您找到具体的解决方案会更容易。
-
您可以使用 IEnumerable
数组:IEnumerable []
标签: c# generics methods shuffle generic-method