Tôi làm cách nào để khởi động lại vòng lặp foreach
trong C# ??Khởi động lại vòng lặp foreach trong C#?
Ví dụ:
Action a;
foreach(Constrain c in Constrains)
{
if(!c.Allows(a))
{
a.Change();
restart;
}
}
restart
ở đây là như continue
hoặc break
nhưng nó khởi động lại foreach từ đầu Nó giống như thiết lập các truy cập của một for
vòng lặp để 0 một lần nữa ..
Is có thể trong C#?
Edit: Tôi muốn cảm ơn tất cả Mehrdad Afshari và Mahesh Velaga đã cho tôi phát hiện ra một lỗi (index = 0) trong việc thực hiện hiện tại của tôi, rằng sẽ không có được phát hiện bằng cách khác ..
Có thể thú vị khi biết chính xác nơi bạn cần sử dụng kiểu khởi động lại này. Bạn đang sử dụng danh sách các đối tượng có thể thay đổi trong một số loại thuật toán. Bạn có thể chia sẻ vấn đề thực tế mà bạn đang cố gắng giải quyết không? –
Vấn đề thực tế: một số tác nhân cố gắng di chuyển trong môi trường. Có những rào cản trong env. Sau mỗi tác nhân quyết định hành động chuyển động tiếp theo là gì, môi trường sẽ kiểm tra xem nhân viên có vượt qua rào cản hay không, nếu có, môi trường cho phép tác nhân chọn một hành động khác; và ở đây, nơi tôi cần phải khởi động lại vòng lặp foreach để kiểm tra tất cả các rào cản một lần nữa với hành động mới được chọn .. Tôi hy vọng rằng làm cho rõ ràng ... – Betamoo