/// <summary>
        /// Sorts the collection based on a specified lambda expression.
        /// </summary>
        /// <typeparam name="P"></typeparam>
        /// <param name="lambda">The lambda expression.</param>
        /// <param name="descending">if set to <c>true</c>, then sorts then collection in descending order.</param>
        public void Sort <P>(SortFunc <T, P> lambda, bool descending)
            where P : IComparable <P>
        {
            // get sorter and sort
            var sorter = new ListSorter <T>();

            sorter.Sort(Items as List <T>, lambda, descending);
        }
        /// <summary>
        /// Sorts the collection based on a specified lambda expression.
        /// </summary>
        /// <typeparam name="P"></typeparam>
        /// <param name="lambda">The lambda expression.</param>
        public void Sort <P>(SortFunc <T, P> lambda)
            where P : IComparable <P>
        {
            // get sorter and sort
            var sorter = new ListSorter <T>();

            sorter.Sort(Items as List <T>, lambda, false);
        }