public wfQueryControlSelectorResult Not(string query)
        {
            List <Control> result = Results.ToArray().ToList();
            wfQueryControlSelectorResult removals = this[query];

            removals.Each((i, c) => result.Remove(c));

            return(new wfQueryControlSelectorResult(_wfQuery, result));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="index">positive numbers (and zero) count from the beginning of the results; negative numbers count from the end.</param>
        /// <returns></returns>
        public wfQueryControlSelectorResult Eq(int index)
        {
            wfQueryControlSelectorResult result = null;
            int offsetIndex = Math.Abs(index);

            if (offsetIndex < Length)
            {
                if (index < 0)
                {
                    //	count from end
                    result =
                        new wfQueryControlSelectorResult(_wfQuery, Results.Reverse().Skip(offsetIndex).Take(1).ToList(), this);
                }
                else
                {
                    //	count from beginning
                    result =
                        new wfQueryControlSelectorResult(_wfQuery, Results.Skip(index).Take(1).ToList(), this);
                }
                return(result);
            }

            return(null);
        }
 internal wfQueryControlSelectorResult(wfQueryContext wfQuery, List <Control> results, wfQueryControlSelectorResult previousResults) : this(wfQuery) {
     _previousResults = previousResults;
     results.ForEach(c => _results.AddLast(c));
 }