Example #1
0
        //StartWith Contains ...
        static IList <BinaryExpression> Lambda <TObj>(CustomExpressionTree expressTree, ParameterExpression pe) where TObj : class
        {
            var flagArr        = new List <int>();
            var expressionList = new List <BinaryExpression>();

            while (expressTree.Count > 0)
            {
                var stackContent = expressTree.Pop();
                if (stackContent is string)
                {
                    ProcessNonExp(flagArr, expressionList, stackContent.ToString());
                    continue;
                }

                if (stackContent is CustomExpression)
                {
                    var currExpress = (stackContent as CustomExpression);
                    ProcessExp <TObj>(pe, currExpress, flagArr, expressionList);
                }
            }
            while (flagArr.Count > 0)
            {
                var lastFlag = flagArr[flagArr.Count - 1];
                CompositeExpByConj(lastFlag, expressionList);
                flagArr.RemoveAt(flagArr.Count - 1);
            }
            return(expressionList);
        }
Example #2
0
        static CustomExpressionTree SwapExp(CustomExpressionTree result)
        {
            var result2 = new CustomExpressionTree();

            while (result.Count > 0)
            {
                result2.Push(result.Pop());
            }
            return(result2);
        }