最近在做一个照片墙互动的项目,其中有个功能需要画面每隔一段时间照片需要重新排列。在网上找了一下洗牌算法
的实现,感觉还不错。
下面记录的代码虽然没有用到洗牌算法,但是也解决了我的需求。go~
/// <summary>
/// 随机打乱list元素
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="original"></param>
/// <returns></returns>
public List<T> Shuffle<T>(List<T> original)
{
System.Random randomNum = new System.Random();
int index = 0;
T temp;
for (int i = 0; i < original.Count; i++)
{
index = randomNum.Next(0, original.Count - 1);
if (index != i)
{
temp = original[i];
original[i] = original[index];
original[index] = temp;
}
}
return original;
}