public virtual void AddSubTag(MemoTag sub) { if (IsAscendant(sub)) { return; } _subTags.Add(sub); }
public virtual void RemoveSubTag(MemoTag sub) { _subTags.Remove(sub); }
/// <summary> /// thisがotherの子孫であるかどうかを返す.自分自身の場合もtrue. /// </summary> public virtual bool IsDescendant(MemoTag other) { var ite = new Iterator <MemoTag>(this, tag => new[] { tag.SuperTag, }); return(ite.Contains(other)); }
/// <summary> /// thisがotherの祖先であるかどうかを返す.自分自身の場合もtrue. /// </summary> public virtual bool IsAscendant(MemoTag other) { var ite = new Iterator <MemoTag>(this, tag => tag.SubTags); return(ite.Contains(other)); }
public virtual void RemoveTag(MemoTag tag) { _tags.Remove(tag); }
public virtual void AddTag(MemoTag tag) { _tags.Add(tag); }