public bool HasTraitSubset(TraitBasedObject traitSubset) { for (var i = 0; i < Length; i++) { var requiredTrait = traitSubset[i]; if (requiredTrait != Unset && this[i] == Unset) { return(false); } } return(true); }
public bool HasSameTraits(TraitBasedObject other) { for (var i = 0; i < Length; i++) { var traitIndex = this[i]; var otherTraitIndex = other[i]; if (traitIndex == Unset && otherTraitIndex != Unset || traitIndex != Unset && otherTraitIndex == Unset) { return(false); } } return(true); }