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);
}
}
}