Пример #1
0
        /// <summary>
        /// Поискать эквивалентные термины
        /// </summary>
        /// <param name="termin">термин</param>
        /// <return>список эквивалентных терминов Termin или null</return>
        public List <Termin> FindTerminsByTermin(Termin termin)
        {
            List <Termin> res = null;

            foreach (string v in termin.GetHashVariants())
            {
                List <Termin> vars = this._FindInTree(v, termin.Lang);
                if (vars == null)
                {
                    continue;
                }
                foreach (Termin t in vars)
                {
                    if (t.IsEqual(termin))
                    {
                        if (res == null)
                        {
                            res = new List <Termin>();
                        }
                        if (!res.Contains(t))
                        {
                            res.Add(t);
                        }
                    }
                }
            }
            return(res);
        }
Пример #2
0
 /// <summary>
 /// Переиндексировать термин (если после добавления у него что-либо поменялось)
 /// </summary>
 /// <param name="t">термин для переиндексации</param>
 public void Reindex(Termin t)
 {
     if (t == null)
     {
         return;
     }
     if (t.Terms.Count > 20)
     {
     }
     if (t.AcronymSmart != null)
     {
         this.AddToHash1((short)t.AcronymSmart[0], t);
     }
     if (t.Abridges != null)
     {
         foreach (Termin.Abridge a in t.Abridges)
         {
             if (a.Parts[0].Value.Length == 1)
             {
                 this.AddToHash1((short)a.Parts[0].Value[0], t);
             }
         }
     }
     foreach (string v in t.GetHashVariants())
     {
         this._AddToTree(v, t);
     }
     if (t.AdditionalVars != null)
     {
         foreach (Termin av in t.AdditionalVars)
         {
             av.IgnoreTermsOrder = t.IgnoreTermsOrder;
             foreach (string v in av.GetHashVariants())
             {
                 this._AddToTree(v, t);
             }
         }
     }
 }
Пример #3
0
        public void Remove(Termin t)
        {
            foreach (string v in t.GetHashVariants())
            {
                this._RemoveFromTree(v, t);
            }
            foreach (List <Termin> li in m_Hash1.Values)
            {
                foreach (Termin tt in li)
                {
                    if (tt == t)
                    {
                        li.Remove(tt);
                        break;
                    }
                }
            }
            int i = Termins.IndexOf(t);

            if (i >= 0)
            {
                Termins.RemoveAt(i);
            }
        }