private MultiFilter(MultiFilter <T> old)
 {
     if (old != null)
     {
         any.AddRange(old.any);
         all.AddRange(old.all);
     }
 }
        public MultiFilter(Func <T, bool> filter, MultiFilter <T> old = null, Mode mode = Mode.Or) : this(old)
        {
            switch (mode)
            {
            case Mode.Or:
                any.Add(filter);
                break;

            case Mode.And:
                all.Add(filter);
                break;

            default:
                break;
            }
        }