Tôi muốn viết chương trình C# thực hiện một số phương thức A(), B() và C() theo thứ tự ngẫu nhiên. Làm thế nào tôi có thể làm điều đó?Phương thức gọi theo thứ tự ngẫu nhiên (C#)
6
A
Trả lời
14
Giả sử một máy phát điện số ngẫu nhiên tuyên bố như thế này:
public static Random Rnd = new Random();
Hãy định nghĩa một hàm Shuffle
để mang lại một danh sách vào thứ tự ngẫu nhiên:
/// <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;
}
ngẫu nhiên này thực hiện kê biếu không của romkyns!
Bây giờ chỉ cần đặt các phương pháp trong một danh sách, phát ngẫu nhiên, sau đó chạy chúng:
var list = new List<Action> { A, B, C };
list.Shuffle();
list.ForEach(method => method());
Các vấn đề liên quan
- 1. Rails: mỗi theo thứ tự ngẫu nhiên
- 2. Trả lại các hàng theo thứ tự ngẫu nhiên
- 3. Giản đồ XSD cho phép thứ tự ngẫu nhiên
- 4. Thứ tự Div ngẫu nhiên khi tải trang
- 5. Tuyên bố foreach có lặp lại theo thứ tự hoặc có thể là thứ tự ngẫu nhiên không?
- 6. php thứ tự ngẫu nhiên từ một foreach
- 7. Không thể tiếp tục hoạt động theo thứ tự ngẫu nhiên
- 8. Ruby - Thực hiện kiểm tra theo thứ tự ngẫu nhiên với rake
- 9. Internet Explorer hiển thị thuộc tính XML theo thứ tự ngẫu nhiên
- 10. Làm thế nào để lặp qua dict theo thứ tự ngẫu nhiên trong Python?
- 11. số C# ngẫu nhiên không là "ngẫu nhiên"
- 12. Android: Lấy số ngẫu nhiên từ phương thức JNI
- 13. ngẫu nhiên chuỗi C#
- 14. C# Ngẫu nhiên (Dài)
- 15. số ngẫu nhiên không quá ngẫu nhiên
- 16. Cách tạo số ngẫu nhiên lớn C
- 17. C++ 11 số ngẫu nhiên
- 18. Phương thức IPAddress.GetAddressBytes() - thứ tự byte nào?
- 19. Số ngẫu nhiên trong C
- 20. Làm thế nào để 'ngẫu nhiên()' số ngẫu nhiên trong C (Linux)?
- 21. Thứ tự các hàng trong Listview thay đổi ngẫu nhiên khi cuộn danh sách trong android
- 22. Phương pháp kiểm tra JUnit với tính chất ngẫu nhiên
- 23. Gọi hàm ngẫu nhiên trên phần trăm?
- 24. gọi phương thức không tĩnh theo tên
- 25. Tại sao không ngẫu nhiên() ngẫu nhiên?
- 26. Số ngẫu nhiên trong POSIX C API
- 27. Xác suất và số ngẫu nhiên C#
- 28. Tại sao biên dịch C# gọi phương thức sản để gọi phương thức BaseClass trong IL
- 29. Perl readdir theo thứ tự
- 30. Thông báo địa phương ngẫu nhiên trong nền
Gjorgji, ý tưởng GUID là khủng khiếp. Xin vui lòng ít nhất là theo thứ tự ngẫu nhiên - hoặc tốt hơn, sử dụng thuật toán bình chọn nhiều nhất. Lấy gợi ý từ những lá phiếu đó - cộng đồng đang nói cho bạn cái nào tốt hơn. –
một ý tưởng rất khủng khiếp, đó là lý do tại sao bạn sẽ không tìm thấy bất kỳ thứ gì trên google nếu bạn tìm kiếm nó http://www.google.com/search?q=orderby+%22Guid.NewGuid%22 –
@Pauli, niềm tin của bạn là bất cứ điều gì bạn tìm thấy trên Google tự động là một ý tưởng tốt? –