Remove() public méthode

Removes the specified o.
public Remove ( Object o ) : void
o Object The o.
Résultat void
Exemple #1
0
        /// <summary>
        /// Satisfies the equals.
        /// </summary>
        /// <param name="v1">The v1.</param>
        /// <param name="v2">The v2.</param>
        /// <param name="trail">The trail.</param>
        /// <returns></returns>
        private static bool SatisfyEquals(Variable v1, Variable v2, Trail trail)
        {
            var d1 = (AllenDomain)v1.Domain;

            if (d1.Empty)
            {
                return(false);
            }
            var d3 = new AllenDomain(d1.Min(), d1.Max() + d1.Duration, d1.Duration, d1.Step);
            var d2 = (AllenDomain)v2.Domain;

            if (d2.Empty)
            {
                return(false);
            }
            for (int st1 = d1.Min(); st1 <= d1.Max(); st1 += d1.Step)
            {
                bool found = false;
                for (int st2 = d2.Min(); st2 <= d2.Max(); st2 += d2.Step)
                {
                    int lt1 = st1 + d1.Duration;
                    int lt2 = st2 + d2.Duration;
                    if ((st1 == st2) && (lt1 == lt2))
                    {
                        found = true;
                        break;
                    }
                }
                if (!found)
                {
                    d3.Remove(st1);
                    if (d3.Size() == 0)
                    {
                        return(false);
                    }
                }
            }
            //v1.UpdateDomain(d3, trail);
            return(true);
        }
 /// <summary>
 /// Satisfies the precedes.
 /// </summary>
 /// <param name="v1">The v1.</param>
 /// <param name="v2">The v2.</param>
 /// <returns></returns>
 private static bool SatisfyPrecedes(Variable v1, Variable v2)
 {
     var d1 = (AllenDomain)v1.Domain;
     if (d1.Empty) return false;
     var d3 = new AllenDomain(d1.Min(), d1.Max() + d1.Duration, d1.Duration, d1.Step);
     var d2 = (AllenDomain)v2.Domain;
     if (d2.Empty) return false;
     for (var st1 = d1.Min(); st1 <= d1.Max(); st1 += d1.Step)
     {
         var found = false;
         for (var st2 = d2.Min(); st2 <= d2.Max(); st2 += d2.Step)
         {
             var lt1 = st1 + d1.Duration;
             if (lt1 >= st2) continue;
             found = true;
             break;
         }
         if (found) continue;
         d3.Remove(st1);
         if (d3.Size() == 0)
         {
             return false;
         }
     }
     //v1.UpdateDomain(d3, trail);
     return true;
 }