Trong phiên bản mới nhất của Iesi.Collections bị thiếu Iesi.Collections.Generic.ISet. Dường như có ba lựa chọn:NHibernate/Iesi.Collections.Generic.ISet <T> thay thế phù hợp là gì?
- LinkedHashSet
- ReadOnlySet
- SynchronizedSet
Iesi.Collections.Generic.ReadOnlySet có vẻ là gần nhất với ISET, và các trạng thái tài liệu:
... although it's advertised as immutable it really isn't.
Anyone with access to the wrapped set can still change the set.
Có vẻ như ReadOnlySet là đại diện tốt nhất vị trí cho ISet? Hiện tại, việc triển khai sẽ thêm các mục vào một tập hợp thông qua các phương thức công cộng để nó có vẻ phù hợp nhất. Các lựa chọn thay thế (IList, túi?) Dường như đòi hỏi nhiều tài nguyên hơn hoặc không nhanh chóng/hiệu quả)? Có một lựa chọn tốt hơn? (Danh sách này không nên có bản sao, mà có thể được xác nhận bằng tay)
tôi sẽ làm những thứ như:
public virtual ISet<MyClass> MyClass
{
get { return this.myClass }
}
public virtual void AddItem(MyClass item)
{
... // Null checks and initialize ISet if null
myClass.Add(item)
}
Về cơ bản nó nắm để lựa chọn thay thế, đang có giải pháp thay thế mà không cần hậu quả tiêu cực như trong tốc độ, vv?
Iesi.Collection v3 cũng có trên NuGet. –