📜  linq 选择随机元素 - C# (1)

📅  最后修改于: 2023-12-03 15:02:41.645000             🧑  作者: Mango

LINQ:选择随机元素 - C#

在实际开发中,我们经常需要从集合中选择一个随机元素。在C#中,可以使用LINQ的OrderByTake方法来完成这个任务。

实现方法

下面是一个使用LINQ随机选择一个元素的示例代码:

var random = new Random();
var list = new List<string>{"apple", "banana", "orange", "pear"};
var randomItem = list.OrderBy(item => random.Next()).Take(1).First();
Console.WriteLine($"随机选择的元素是:{randomItem}");

该代码将创建一个Random实例用于生成随机数。然后,我们定义一个List<string>类型的集合list,并将一些字符串添加到该集合中。接下来,我们使用OrderBy方法按照随机数的顺序对集合进行排序,并使用Take方法选择第一个元素。最后,我们使用First方法获取第一个元素,该元素即为随机选择的元素。

注意,由于Random.Next()方法是以随机方式生成整数的,因此每次运行时,代码将返回不同的结果。

代码片段
var random = new Random();
var list = new List<string>{"apple", "banana", "orange", "pear"};
var randomItem = list.OrderBy(item => random.Next()).Take(1).First();
Console.WriteLine($"随机选择的元素是:{randomItem}");
结论

使用LINQ的OrderByTake方法可以轻松地从集合中选择一个随机元素,这在实际开发中非常有用。 但是,由于 OrderBy 方法会按顺序重新排序集合,这可能会导致性能问题,因此应该在处理大型集合时使用其他方法来选择随机元素。