private Account LinqSearchBreakDown2(List <Account> list, string name, int number)
        {
            var l = new Lambda1Environment()
            {
                CapturedName = name, CapturedNumber = number
            };
            var predicate = new Func <Account, bool>(l.Evaluate);

            return(list.FirstOrDefault(predicate));
        }
        private Account LinqSearchBreakDown3(List <Account> list, string name, int number)
        {
            var l = new Lambda1Environment()
            {
                CapturedName = name, CapturedNumber = number
            };
            var predicate = new Func <Account, bool>(l.Evaluate);

            IEnumerable <Account> enumerable = list;
            IEnumerator <Account> enumerator = enumerable.GetEnumerator();

            while (enumerator.MoveNext())
            {
                if (predicate(enumerator.Current))
                {
                    return(enumerator.Current);
                }
            }
            return(default(Account));
        }