Chcę napisać program C#, który wykonuje kilka metod A(), B() i C() w losowej kolejności. Jak mogę to zrobić?Wywołanie metod w kolejności losowej (C#)
6
A
Odpowiedz
14
Zakładając generator liczb losowych deklarowaną tak:
public static Random Rnd = new Random();
Zdefiniujmy Shuffle
funkcję przynieść listę w kolejności losowej:
/// <summary>
/// Brings the elements of the given list into a random order
/// </summary>
/// <typeparam name="T">Type of elements in the list.</typeparam>
/// <param name="list">List to shuffle.</param>
/// <returns>The list operated on.</returns>
public static IList<T> Shuffle<T>(this IList<T> list)
{
if (list == null)
throw new ArgumentNullException("list");
for (int j = list.Count; j >= 1; j--)
{
int item = Rnd.Next(0, j);
if (item < j - 1)
{
var t = list[item];
list[item] = list[j - 1];
list[j - 1] = t;
}
}
return list;
}
Ten Shuffle realizacja dzięki uprzejmości romkyns!
Teraz wystarczy umieścić metod w wykazie, shuffle, następnie uruchomić je:
var list = new List<Action> { A, B, C };
list.Shuffle();
list.ForEach(method => method());
Powiązane problemy
- 1. szyn: każdy w kolejności losowej
- 2. Algorytm generowania losowej kolejności elementów
- 3. Nie można wznowić działalność w kolejności losowej
- 4. Jak mogę uruchomić testy JUnit w losowej kolejności?
- 5. Wywołanie metod C# BHO z Javascript
- 6. Wywołanie funkcji w niewłaściwej kolejności
- 7. Wyświetlanie kolejności wierszy w kolejności losowej w przewijaniu listy w Androidzie
- 8. W językach C++ i C# są sprawdzane wiele warunków w ustalonej lub losowej kolejności?
- 9. Jak iterować przez Dict w kolejności losowej w Pythonie?
- 10. Generowanie losowej liczby o losowej liczbie liczbowej w Objective-C
- 11. Czy mogę przeprowadzić test NUnit w losowej kolejności?
- 12. Ustawianie zdefiniowanej losowej kolejności dla tablicy w PHP
- 13. Internet Explorer wyświetla atrybuty XML w losowej kolejności
- 14. Ruby - Wykonywanie testów w losowej kolejności z prowizją
- 15. Wywołanie wirtualnych metod innych klas w ctors
- 16. Wywołanie właściwości/metod obiektu Piped
- 17. IntStream z losowej i losowej współbieżności
- 18. W bashu, jak mogę mieć zestaw argumentów w dowolnej kolejności losowej? Podobnie jak para klucz-wartość?
- 19. Wywołanie metod statycznych z Spring Security Expressions?
- 20. Wywołanie metod składowych przed zakończeniem deklaracji obiektu
- 21. Generowanie liczby losowej w zakresie?
- 22. Generowanie liczby losowej w C w zakresie i określonym kroku
- 23. Wywołanie metody C# z kodu C++ w pakiecie WP8
- 24. Czy możliwe jest uruchamianie testów testowych Common Test w losowej kolejności?
- 25. OCMock - weryfikacja kolejności wywołań metod. Czy jest jakiś inny sposób?
- 26. Wywołanie biblioteki C++ w języku C#
- 27. Warunkowo wywołanie konstruktora w C#
- 28. Czy wywołanie dwóch zsynchronizowanych metod w jednym wierszu spowoduje zakleszczenie?
- 29. generowanie liczby losowej o określonej dystrybucji w c
- 30. Wywołanie C/C++ z Pythona?
Gjorgji idea GUID jest straszna. Przynajmniej zamów przez Random - lub lepiej, użyj algorytmu, który jest najczęściej wybierany. Odczytaj te głosy - społeczność mówi ci, która z nich jest lepsza. –
bardzo straszny pomysł, dlatego nie znajdziesz niczego na google, jeśli go znajdziesz http://www.google.com/search?q=orderby+%22Guid.NewGuid%22 –
@Pauli, twoje przekonanie jest wszystko, co znajdziesz w Google, jest automatycznie dobrym pomysłem? –