📅  最后修改于: 2023-12-03 14:59:40.683000             🧑  作者: Mango
在C#中,有时候我们需要对一个列表中的元素进行随机化排序。本文将讲述如何使用C#在列表中进行随机排序。
C#中提供了一个名为Random
的类,我们可以使用它来生成随机数。我们可以用Random的实例来生成一个列表的随机排序。下面的代码演示了如何使用C#和Random
类对列表进行随机排序:
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
Random rnd = new Random();
list = list.OrderBy(x => rnd.Next()).ToList();
代码解释:
Random
实例。这个实例将用于生成随机数。OrderBy
方法来对列表进行排序。我们传递给OrderBy
一个函数,该函数将为列表中的每个元素生成一个随机数。ToList
方法用于将排序后的元素转换为列表。如果我们想要在代码中多次使用这个随机化列表的算法,可以将它封装到一个通用方法中,这将使代码更加模块化和灵活。下面的代码是一个通用方法,接收一个列表作为参数,然后返回一个随机化后的列表:
public static List<T> ShuffleList<T>(List<T> inputList)
{
List<T> randomList = new List<T>();
Random random = new Random();
while (inputList.Count > 0)
{
int randomIndex = random.Next(0, inputList.Count);
randomList.Add(inputList[randomIndex]);
inputList.RemoveAt(randomIndex);
}
return randomList;
}
代码解释:
ShuffleList
的静态方法,该方法将接收一个列表作为输入,并将返回一个随机化后的列表。randomList
的新列表,该列表将用于存储随机化元素的列表。Random
实例,该实例将用于生成随机数。while
循环,我们不断从输入列表中随机删除一个元素,并将它添加到randomList
中。当输入列表为空时,循环停止。我们可以使用以下代码来测试我们的通用方法:
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
List<int> randomList = ShuffleList(list);
在C#中,Random
类可以用来生成随机数。通过使用OrderBy
方法和Random
类的实例,我们可以对一个列表进行随机排序。我们可以将这个算法封装到一个通用方法中,以使它在代码中更加灵活和模块化。感谢您的阅读,希望这篇文章对您有所帮助。