В последней версии Iesi.Collections отсутствует Iesi.Collections.Generic.ISet. Там, кажется, три альтернативы:Что такое подходящий NHibernate/Iesi.Collections.Generic.ISet <T> замена?
- LinkedHashSet
- ReadOnlySet
- SynchronizedSet
Iesi.Collections.Generic.ReadOnlySet, кажется, ближе всего к Исети, и в документации говорится:
... although it's advertised as immutable it really isn't.
Anyone with access to the wrapped set can still change the set.
Кажется, что ReadOnlySet является лучшим представителем кружева для ISet? В настоящее время реализация добавляет элементы в набор через общедоступные методы, поэтому кажется, что это лучше всего подходит. Альтернативы (IList, bag?), Кажется, требуют больше ресурсов или не так быстро/эффективно)? Есть ли лучшая альтернатива? (Этот список не должен иметь дубликаты, которые могут быть проверены вручную)
Я буду делать такие вещи, как:
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)
}
В основном это сводится к альтернативам, есть альтернативы без негативных последствий, таких, как в скорость и т.д.?
Iesi.Collection v3 также находится на NuGet. –