Hide
SaintsHashSet<> / ReferenceHashSet<>

A serializable HashSet<> for serializable type, SerializedReference type & interface type. Duplicated element will have a warning color.

If the type is an interface or an abstract class, the polymorphism picker will be used.

You can use SaintsHashSet attribute to control paging & searching

Parameters:

  • bool searchable = true: false to disable the search function
  • int numberOfItemsPerPage = 0: how many items per page. 0 for no paging
public SaintsHashSet<string> stringHashSet; // default [SaintsHashSet(numberOfItemsPerPage: 5)] // paging control public SaintsHashSet<int> integerHashSet = new SaintsHashSet<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, }; public interface IReference { string Name { get; } } // ... implement of IReference omited here public SaintsHashSet<IReference> refHashSet;

Example of using on interface where you can pick either Unity Object or serializable class/struct:

ReferenceHashSet is used if you want to pick a polymorphism type (while the type itself is not abstract)

[Serializable] public class Sub1 : BaseC { public string sub1; } [Serializable] public class Sub2 : Sub1 { public string sub2; } // SaintsHashSet will treat it as a serializable type public SaintsHashSet<Sub1> noPolymorphism; // ReferenceHashSet will treat it as a reference type, allows you to pick polymorphism types public ReferenceHashSet<Sub1> polymorphism;