virtual public void SetInput(CSmartArray Array) { int count = m_TagInputArray.Count; for (int i = 0; i < count; i++) { ProductTag tag = m_TagInputArray[i]; int ProductCount = Array.GetTagCount(tag); m_InputCount[i] = ProductCount; m_SmartInput.Add(tag, ProductCount); Array.ClearTag(tag); } }
public void ExcludeWhatHave(CSmartArray Arr) { var e = m_TagMap.Keys.GetEnumerator(); List <ProductTag> sameTag = new List <ProductTag>(); for (int i = 0; i < m_TagMap.Keys.Count; i++) { e.MoveNext(); ProductTag tag = e.Current; int count = Arr.GetTagCount(tag); if (count != 0) { sameTag.Add(tag); } } for (int i = 0; i < sameTag.Count; i++) { ProductTag tag = sameTag[i]; int count = Arr.GetTagCount(tag); int value = m_TagMap[tag]; if (value > count) { Add(tag, -count); Arr.ClearTag(tag); } else if (value < count) { ClearTag(tag); Arr.Add(tag, -value); } else //одинаковое значение { ClearTag(tag); Arr.ClearTag(tag); } } //e.MoveNext(); }