Select from a range but exclude certain numbers
c#, numbers, random, range, wpf
Solution
Using some handy extension methods here, you can create a range of numbers and select randomly from that rage. For example, with these extension methods:
public static T RandomElement(this IEnumerable<T> enumerable)
{
return enumerable.RandomElementUsing(new Random());
}
public static T RandomElementUsing(this IEnumerable<T> enumerable, Random rand)
{
int index = rand.Next(0, enumerable.Count());
return enumerable.ElementAt(index);
}
You can apply these to a filtered range of numbers:
var random = Enumerable.Range(1, 90).Except(arrayOfRemovedNumbers).RandomElement();
Problem
Is it possible to pick a random number from a given range (1-90), but exclude certain numbers. The excluded numbers are dynamically created but lets say they are 3, 8, and 80. I have managed to create random number generator but couldn't identify any functions that let me fulfill my requirements. ``` Random r = new Random(); this.num = r.Next(1, 90); ``` The numbers which are to be excluded are previously generated numbers. So, if the random number is one, this would then get added to the excluded numbers list.