Esempio n. 1
0
        // Удаление записи
        public override void Delete(TValue obj)
        {
            var str = Words(triggerSeach.Text(obj));

            for (var i = 0; i < str.Count; ++i)
            {
                var w   = str[i];
                var key = hash.KeyToCode(w);

                //if (w == "222")
                //{
                //    int bp = 0;
                //}

                if (key != 0)
                {
                    hash.Delete(key, obj);

                    //var key2 = hash.KeyToCode(w);

                    //Debug.WriteLine("Insert key: " + key + ", key_after: " + key2);
                }
            }

            Pool <List <string> > .Release(str);
        }
Esempio n. 2
0
        // Удаление записи
        public override void Delete(TValue obj)
        {
            var keys = trigger.GetKeys(obj);

            for (var i = 0; i < keys.Length; ++i)
            {
                // TODO Нельзя так оптимизировать эту ситуация просто потому, что фильтр может зависить от данных в других записях, которые меняются
                // независимо. Поэтому даже объект который не прошел фильтр, может присутствовать в индексе. Так же как и объект который не проходит
                // фильтр может присутствовать в фильтре. Вобще это мысль которую надо еще обдумать.
                //if (!trigger.KeyFilter(keys[i], obj))
                //{
                //    hash.Delete(trigger.GetKeyCode(keys[i]), obj);
                //}

                var key = trigger.GetKeyCode(keys[i]);

                hash.Delete(key, obj);
            }
        }