.NET 4.0 giới thiệu lớp SortedSet<T>
, cùng với giao diện ISet<T>
được triển khai bởi SortedSet<T>
và HashSet<T>
. Điều này rõ ràng sẽ làm cho việc triển khai lớp PriorityQueue<T>
của bạn trở nên đơn giản hơn.
Tuy nhiên, vẫn không có giao diện IQueue<T>
, ít nhất sẽ thừa nhận nhu cầu xếp hàng ưu tiên hoặc bất kỳ việc triển khai nào khác so với BCL Queue<T>
cơ bản. Tương tự, không có IStack<T>
.
Cá nhân tôi thấy thiếu một số giao diện cơ bản nhất này đáng thất vọng và thiếu tầm nhìn, đặc biệt là chi phí thiết kế/đặc tả/triển khai/thử nghiệm/tài liệu để trích xuất một giao diện đơn giản từ một lớp hiện có sẽ rất thấp.
public interface IQueue<T> : IEnumerable<T>, ICollection, IEnumerable
{
T Dequeue();
void Enqueue(T item);
T Peek();
}
Có, thấy không? Tôi đã làm xong.
Nguồn
2009-12-14 10:29:25
Một trong những điều đầu tiên tôi nhận thấy khi di chuyển từ Java sang C#. Không có hàng đợi ưu tiên? Java thậm chí đã có/có hàng đợi ưu tiên đồng bộ. – Carra
xem thêm http://stackoverflow.com/questions/102398/priority-queue-in-net –