private IPropertyMatchGroup FindOrCreateGroup() { if (_groups.Count > 0) { return(_groups[_groups.Count - 1]); } var group = new PropertyMatchGroup(); _groups.Add(group); return(group); }
/// <summary> /// 添加指定的属性匹配到组集合中。 /// </summary> /// <param name="group"></param> /// <param name="item"></param> public void AddToGroup(IPropertyMatchGroup group, PropertyMatch item) { var realGroup = group as PropertyMatchGroup; //如果 group 不是一个真正的组,那么它就是一个 PropertyMatch。 //这时再添加新的元素到这个组中,需要把它升级为一个真正的组集合。 if (realGroup == null) { var index = _groups.IndexOf(group); if (index < 0) { throw new InvalidOperationException("group 没有在本条件中,不能为其添加元素。请先将 group 添加到本条件中。"); } realGroup = new PropertyMatchGroup { group as PropertyMatch }; _groups[index] = realGroup; } realGroup.Add(item); }
/// <summary> /// 添加一个 And 连接的属性匹配组。 /// </summary> /// <param name="group"></param> public void Add(PropertyMatchGroup group) { _groups.Add(group); }