Have you ever needed to randomly sort a list in C#? Add this to your nifty extensions library:
- /// <summary>
- /// Shuffles the specified list (Extension Method for any IList<T>).
- /// </summary>
- /// <remarks>
- /// Algorithm described at: http://en.wikipedia.org/wiki/Fisher-Yates_shuffle
- /// </remarks>
- /// <example>list.Shuffle();</example>
- public static void Shuffle<T>(this IList<T> list)
- {
- Random rng = new Random();
- int n = list.Count;
- while (n > 1) {
- n--;
- int k = rng.Next(n + 1);
- T value = list[k];
- list[k] = list[n];
- list[n] = value;
- }
- }
1 comment:
Hi,
A simple question but what class name should I put this method in, so that it can be used in any IList ?
Thanks.
Dio
Post a Comment