using System; using System.Collections.Generic; using System.Linq; namespace Developpez.Dotnet { /// /// Fournit des méthodes d'extension pour le type Random /// public static class RandomExtensions { /// /// Renvoie un élément choisi aléatoirement dans la collection spécifiée /// /// Type des éléments de la collection /// Object Random à utiliser /// Collection dans laquelle choisir un élément /// Un élément choisi aléatoirement dans la collection public static T Pick(this Random random, ICollection items) { int index = random.Next(items.Count); return items.ElementAt(index); } /// /// Renvoie un objet choisi aléatoirement parmi les paramètres spécifiés /// /// Type d'objet à choisir /// Objet Random à utiliser /// Premier paramètre /// Second paramètre /// Autres paramètres /// Un objet choisi aléatoirement parmi les paramètres spécifiés public static T Pick(this Random random, T first, T second, params T[] others) { var items = new[] { first, second }.Concat(others).ToArray(); return random.Pick(items); } } }