Beispiel #1
0
		public virtual object NextMatching(IPredicate4 condition)
		{
			if (null == condition)
			{
				throw new ArgumentNullException();
			}
			List4 current = _next;
			List4 previous = null;
			while (null != current)
			{
				object element = ((object)current._element);
				if (condition.Match(element))
				{
					if (previous == null)
					{
						RemoveNext();
					}
					else
					{
						previous._next = ((List4)current._next);
					}
					return element;
				}
				previous = current;
				current = ((List4)current._next);
			}
			return null;
		}
Beispiel #2
0
        public virtual object NextMatching(IPredicate4 condition)
        {
            if (null == condition)
            {
                throw new ArgumentNullException();
            }
            List4 current  = _next;
            List4 previous = null;

            while (null != current)
            {
                object element = ((object)current._element);
                if (condition.Match(element))
                {
                    if (previous == null)
                    {
                        RemoveNext();
                    }
                    else
                    {
                        previous._next = ((List4)current._next);
                    }
                    return(element);
                }
                previous = current;
                current  = ((List4)current._next);
            }
            return(null);
        }
		public static void All(IEnumerable values, IPredicate4 condition)
		{
			IEnumerator iterator = values.GetEnumerator();
			while (iterator.MoveNext())
			{
				if (!condition.Match(iterator.Current))
				{
					Assert.Fail("Condition does not hold for for value '" + iterator.Current + "'.");
				}
			}
		}
Beispiel #4
0
 public static bool Any(IEnumerator iterator, IPredicate4 condition)
 {
     while (iterator.MoveNext())
     {
         if (condition.Match(iterator.Current))
         {
             return(true);
         }
     }
     return(false);
 }
Beispiel #5
0
 public static bool Any(IEnumerator iterator, IPredicate4 condition)
 {
     while (iterator.MoveNext())
     {
         if (condition.Match(iterator.Current))
         {
             return true;
         }
     }
     return false;
 }
Beispiel #6
0
        public static void All(IEnumerable values, IPredicate4 condition)
        {
            IEnumerator iterator = values.GetEnumerator();

            while (iterator.MoveNext())
            {
                if (!condition.Match(iterator.Current))
                {
                    Assert.Fail("Condition does not hold for for value '" + iterator.Current + "'.");
                }
            }
        }
Beispiel #7
0
		public static IList Filter(IList items, IPredicate4 predicate)
		{
			IList filtered = new ArrayList();
			for (IEnumerator itemIter = items.GetEnumerator(); itemIter.MoveNext(); )
			{
				object item = itemIter.Current;
				if (predicate.Match(item))
				{
					filtered.Add(item);
				}
			}
			return filtered;
		}
Beispiel #8
0
        public static IList Filter(IList items, IPredicate4 predicate)
        {
            IList filtered = new ArrayList();

            for (IEnumerator itemIter = items.GetEnumerator(); itemIter.MoveNext();)
            {
                object item = itemIter.Current;
                if (predicate.Match(item))
                {
                    filtered.Add(item);
                }
            }
            return(filtered);
        }
Beispiel #9
0
 public Tree Filter(IPredicate4 a_filter)
 {
     if (_preceding != null)
     {
         _preceding = _preceding.Filter(a_filter);
     }
     if (_subsequent != null)
     {
         _subsequent = _subsequent.Filter(a_filter);
     }
     if (!a_filter.Match(this))
     {
         return(Remove());
     }
     return(this);
 }
 protected override void ProcessAspect(ClassAspect aspect, int currentSlot, bool isNull
                                       )
 {
     if (isNull)
     {
         return;
     }
     if (predicate.Match(aspect))
     {
         aspect.CollectIDs(context);
     }
     else
     {
         aspect.IncrementOffset(context, context);
     }
 }
Beispiel #11
0
		public Tree Filter(IPredicate4 a_filter)
		{
			if (_preceding != null)
			{
				_preceding = _preceding.Filter(a_filter);
			}
			if (_subsequent != null)
			{
				_subsequent = _subsequent.Filter(a_filter);
			}
			if (!a_filter.Match(this))
			{
				return Remove();
			}
			return this;
		}
Beispiel #12
0
 protected override object Map(object current)
 {
     return(_filter.Match(current) ? current : Iterators.Skip);
 }