login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > .NET > C#.NET > IList Generic Shuffle

IList Generic Shuffle

Auteur: Abbas - 14 februari 2013 - 12:53 - Gekeurd door: Abbas - Hits: 2473 - Aantal punten: (0 stemmen)




Een generic extension method om de items in een lijst in een willekeurige volgorde te zetten. De methode maakt gebruik van het Fisher-Yates mechanisme (http://en.wikipedia.org/wiki/Fisher-Yates).

Code:
  1. public static void Shuffle<T>(this IList<T> list)
  2. {
  3. var rnd = new Random();
  4.  
  5. for (int i = list.Count - 1; i >= 0; i--)
  6. {
  7. var r = rnd.Next(i + 1);
  8. T value = list[r];
  9. list[r] = list[i];
  10. list[i] = value;
  11. }
  12. }

Voorbeeld gebruik:

  1. //Array met integers
  2. var numbers = new int[3] { 1, 2, 3 };
  3. numbers.Shuffle();
  4.  
  5. //Lijst met anonymous objects
  6. var items = new []
  7. {
  8. new { Code = 1, StringVal = "1" },
  9. new { Code = 2, StringVal = "2" },
  10. new { Code = 3, StringVal = "3" },
  11. new { Code = 4, StringVal = "4" }
  12. };
  13. items.Shuffle();
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (3)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.021s