Logo vi.removalsclassifieds.com

Sự khác biệt giữa IEnumerable và IEnumerator (With Table)

Mục lục:

Anonim

IEnumerable và IEnumerator đều là giao diện có sẵn trong C #. Cái trước là một mô-đun, trong khi cái sau là một đối tượng.

IEnumerable sản xuất IEnumerator. Ở đây GetEnumerator được sử dụng để lấy IEnumerator. Vòng lặp Foreach được sử dụng để tạo mã sử dụng Enumerator. Một điều tra viên khác với IEnumerator vì IEnumerator là một giao diện. ĐTV thực hiện nó.

IEnumerable so với IEnumerator

Sự khác biệt giữa IEnumerable và IEnumerator là IEnumerable hoạt động cho giao diện chung và IEnumerator hoạt động cho tất cả các giao diện không chung chung. IEnumerable trỏ đến một đối tượng có thể được liệt kê, nhưng IEnumerator được thực hiện bằng cách sử dụng từng câu lệnh để lặp lại. Giao diện IEnumerable sử dụng IEnumerator để lặp lại tất cả các phần tử của nó bằng cách sử dụng cho mỗi câu lệnh.

IEnumerable được sử dụng để tìm một đối tượng được sử dụng làm giao diện. Nó được sử dụng để lặp lại tất cả các phần tử trong bộ sưu tập. Quá trình lặp lại giúp việc duyệt qua trong bộ sưu tập dễ dàng hơn. Nó hoạt động như một đối tượng. GetEnumerator là một phương thức được sử dụng để triển khai giao diện IEnumerator.

IEnumerator có hai phương thức, Reset () và MoveNext (), và có một thuộc tính mở rộng được gọi là Hiện tại. MoveNext () là một phương thức tạo ra giá trị Boolean chỉ ra phần tử cuối của danh sách. Phương pháp đặt lại làm cho điều tra viên trở thành vị trí mặc định của nó.

Bảng so sánh giữa IEnumerable và IEnumerator

Các thông số so sánh

IEnumerable

IEnumerator

Loại giao diện Chung Không chung chung
Số phương pháp Một Hai
Lợi nhuận IEnumerator Không có
Trạng thái con trỏ Không thể giữ lại Có thể giữ lại
Sản phẩm Đối tượng được liệt kê Đối với mỗi kết quả câu lệnh
Cách viết trừu tượng Bê tông

IEnumerable là gì?

Đây là một giao diện được thực hiện bởi một lớp có thể liệt kê. Toàn bộ bộ sưu tập trong c # có thể triển khai giao diện IEnumerable. Nó trả về IEnumerator. Nó không thay đổi theo các chỉ định truy cập được sử dụng trong mã. IEnumerable có một phương thức được gọi là GetEnumerator. Việc triển khai này chỉ được thực hiện bên trong lớp.

Quá trình lặp lại giúp việc duyệt qua trong bộ sưu tập dễ dàng hơn. Nó hoạt động như một đối tượng. GetEnumerator là một phương thức được sử dụng để triển khai giao diện IEnumerator. IEnumerable thường được biết đến như một giao diện chung vì mã được viết rất nhỏ vì nó chỉ cần thực hiện một lần. Không quan trọng là có bao nhiêu hàm tạo được sử dụng trong quá trình triển khai mã để lặp lại tất cả các phần tử.

Mã có khả năng bảo trì thấp vì việc sửa đổi mã nằm trong một nền tảng và không yêu cầu bất kỳ thay đổi bổ sung nào. Nó sử dụng tính trừu tượng để lặp lại tất cả các phần tử trong mảng. Nó sử dụng một trình lặp IEnumerator được sử dụng để lặp lại tất cả các phần tử. Vì nó là một lớp chung chung, nó dễ dàng thực hiện việc lặp lại các phần tử trong mảng. Nó cung cấp một giao diện chung. Nó được sử dụng trong tất cả các lớp không chung chung.

IEnumerator là gì?

Nó có hai phương thức để thực hiện lặp lại tất cả các phần tử trong bộ sưu tập. Nó có hai phương pháp là MoveNext và Reset. MoveNext là một phương thức chỉ ra rằng lần lặp chưa đến phần tử cuối cùng của bộ sưu tập.

Phương pháp đặt lại thực hiện tương tự như nó có âm thanh. Nó chỉ ra để bắt đầu lại lần lặp sau khi lần lặp trước đó được thực hiện cho đến phần tử cuối cùng của mảng. Cuối cùng, một đối tượng là Hiện tại, đối tượng này cung cấp cho phần tử hiện tại là kết quả của quá trình lặp. Nó có một số quyền truy cập cụ thể vào các phần tử của nó. Nó chỉ cung cấp quyền truy cập chỉ đọc vào tất cả các mảng của nó.

IEnumerator gọi thuộc tính hiện tại, thuộc tính này có trách nhiệm trả về phần tử trong danh sách hiện đang được sử dụng. Nó sử dụng hai phương thức và thuộc tính để lặp lại đối tượng. Mỗi câu lệnh sử dụng danh sách mảng và bắt đầu lặp lại bằng cách di chuyển về phía trước và sử dụng một trong các phương thức. IEnumerator không thể trả về IEnumerable.

Nó có thể dễ dàng lấy lại trạng thái hiện tại của con trỏ. IEnumerator sử dụng một cách viết cụ thể. Nó bắt đầu lặp lại trong ngăn xếp bằng cách lặp lại phần tử đầu tiên của ngăn xếp và kết thúc vào phần tử cuối cùng của ngăn xếp.

Sự khác biệt chính giữa IEnumerable và IEnumerator

Kết luận

IEnumerable là một giao diện được thực hiện bởi một lớp có thể liệt kê. Nó sử dụng tính trừu tượng để lặp lại tất cả các phần tử trong mảng. Nó sử dụng một trình lặp IEnumerator được sử dụng để lặp lại tất cả các phần tử. IEnumerator gọi thuộc tính hiện tại, thuộc tính này có trách nhiệm trả về phần tử trong danh sách hiện đang được sử dụng.

Nó sử dụng hai phương thức và thuộc tính để lặp lại đối tượng. IEnumerable thường được biết đến như một giao diện chung vì mã được viết rất nhỏ. IEnumerator sử dụng một cách viết cụ thể. GetEnumerator là một phương thức được sử dụng để triển khai giao diện IEnumerator.

Quá trình lặp lại giúp việc duyệt qua bộ sưu tập trong IEnumerable dễ dàng hơn. Nó hoạt động như một đối tượng. MoveNext là một phương thức tạo ra giá trị Boolean chỉ ra phần tử cuối của danh sách. IEnumerable trả về giao diện IEnumerator khi nó trải qua quá trình lặp lại.

Cả hai đều được sử dụng cho quy trình lặp, quy trình này tuân theo các cách lặp khác nhau. Nó sử dụng một trình lặp để lặp lại tất cả các phần tử trong mảng của ngăn xếp. Nó khác nhau ở chỗ một cái sử dụng trừu tượng và cái kia sử dụng mã cụ thể. Nó có các phương thức và thuộc tính khác nhau để lấy lại trạng thái của con trỏ và duy trì sự lặp lại của ngăn xếp.

Sự khác biệt giữa IEnumerable và IEnumerator (With Table)