Tôi đã tự hỏi về thứ tự mà một vòng lặp foreach trong C # lặp qua một System.Collections.Generic.List<T>
đối tượng.
Tôi đã tìm thấy một câu hỏi khác về cùng chủ đề, nhưng tôi không cảm thấy rằng nó trả lời câu hỏi của tôi làm tôi hài lòng.
Ai đó nói rằng không có thứ tự nào được xác định. Nhưng như một người khác nói, thứ tự nó đi qua một mảng là cố định (từ 0 đến Độ dài-1). 8.8.4 Tuyên bố foreach
Người ta cũng nói rằng bất kỳ lớp tiêu chuẩn nào có thứ tự cũng được giữ nguyên như vậy (ví dụ List<T>
). Tôi không thể tìm thấy bất kỳ tài liệu nào để sao lưu điều đó. Vì vậy, đối với tất cả những gì tôi biết bây giờ nó có thể hoạt động như vậy, nhưng có thể trong phiên bản .NET tiếp theo, nó sẽ khác (mặc dù nó có thể khó xảy ra).
Tôi cũng đã xem List(t).Enumerator
tài liệu mà không gặp may.
Một câu hỏi liên quan khác nói rằng đối với Java, nó được đề cập cụ thể trong tài liệu:
List.iterator()
trả về một trình lặp trên các phần tử trong danh sách này theo trình tự thích hợp. "
Tôi đang tìm kiếm một cái gì đó tương tự trong tài liệu C #.
Cảm ơn trước.
Chỉnh sửa: Cảm ơn tất cả các bạn cho tất cả các câu trả lời của bạn (tuyệt vời làm sao tôi nhận được rất nhiều câu trả lời). Điều tôi hiểu từ tất cả các câu trả lời là List<T>
nó luôn lặp lại theo thứ tự lập chỉ mục của nó. Nhưng tôi vẫn muốn thấy một tài liệu hòa bình rõ ràng nói rõ điều này, tương tự như tài liệu Java trênList
.