示例#1
0
        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);
            }
        }
示例#2
0
        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();
        }