Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            #region Different_Ways_ToDo_AnonymoueType
            // 1. Standard constructor
            OrdersObjL1 Order0 = new OrdersObjL1();
            Order0.OrderId   = 1;
            Order0.OrderDate = DateTime.Now;

            // 2. Overloaded Constructor
            OrdersObjL1 Order1 = new OrdersObjL1(2, DateTime.Now);

            // 3. two Arraies
            int[]    Nums   = { 31, 32, 33 };
            string[] States = { "State0", "State1", "State2" };

            // 4, Implicity Call Constructor
            OrdersObjL1 Order2 = new OrdersObjL1 {
                OrderId = 3, OrderDate = DateTime.Now, CustomerName = "Cust0", OrderAmount = 359.00M
            };

            // 5. Explicity Call Constructor
            OrdersObjL1 Order3 = new OrdersObjL1()
            {
                OrderId = 4, OrderDate = DateTime.Now, CustomerName = "Cust1", OrderAmount = 299.00M
            };

            // 6. Nested Obj
            OrdersObjL1 Order4 = new OrdersObjL1 {
                BillingAddress = new OrderAddressL1 {
                    Address1 = "b-address1", City = "b-City1", State = "b-State1", Zip = "b-Zip1"
                },
                ShippingAddress = new OrderAddressL1 {
                    Address1 = "s-adress1", City = "s-City1", State = "s-State1", Zip = "s-Zip1"
                }
            };

            // 7. Obj Collection
            OrdersObjL1 Order5 = new OrdersObjL1()
            {
                OrderItems = new List <OrderItemL1>
                {
                    new OrderItemL1()
                    {
                        OrderItemId = 0, ProductName = "PdName0", Qty = 1
                    },
                    new OrderItemL1 {
                        OrderItemId = 1, ProductName = "PdName1", Qty = 2
                    },
                    new OrderItemL1 {
                        OrderItemId = 2, ProductName = "PdName2", Qty = 3
                    }
                }
            };

            // 8. Work With Any Type IEnumerable
            List <int> newNumbsAry = new List <int> {
                33, 34, 35
            };
            ArrayList ObjArr = new ArrayList {
                Order0, Order1, Order2, Order3, Order4, Order5
            };

            Console.WriteLine(String.Format("The Length of ObjArr is: {0}.", ObjArr.Count));
            #endregion

            Console.WriteLine("The Purpose of Anonymous Type is about re-format Complex Obj.");
            AnonymousTypeL3 at3 = new AnonymousTypeL3();
            at3.ShowOrdersAccordingToAnonymouseType();

            ExtensionFunctionL4.PrintResultByUsingExtensionFunction(10);

            #region L5_Delegate_L7Func_Lambda
            string[] Names = Source.SetStringArr();
            foreach (string name in Names)
            {
                Console.WriteLine("75 -- name: {0}.", name);
            }
            Console.WriteLine("Press 1 Input Start With letter, Press 2 input End with Letter.");
            string InputedNum = Console.ReadLine();

            PrintOutStringArr Print = new PrintOutStringArr();
            switch (InputedNum)
            {
            case "1":
                Console.WriteLine("Input Start Letter: ");
                string     LetterStart = Console.ReadLine();
                L5Delegate l5DelegateS = new L5Delegate(Names, LetterStart);
                string[]   RzNames0    = l5DelegateS.CollectNames(DelegateMethods.CheckStartwithLetter);
                Print.PrintStrArr(RzNames0);
                break;

            case "2":
                Console.WriteLine("Input End Letter: ");
                string     LetterEnd   = Console.ReadLine();
                L5Delegate l5DelegateE = new L5Delegate(Names, LetterEnd);
                string[]   RzNames1    = l5DelegateE.CollectNames(DelegateMethods.CheckEndwithLetter);
                Print.PrintStrArr(RzNames1);
                break;

            default:
                Console.WriteLine("This is default codition. Press Enter to continue...");
                break;
            }

            Console.WriteLine("\nThis will display how to use delegate expression.\n");
            Console.WriteLine("Please Letter Option -- 1 for Start Letter, 2 for End Letter.");
            string InputedLo = Console.ReadLine();
            if (InputedLo == "1")
            {
                Console.WriteLine("105 -- Input Start Letter: ");
                string     sl = Console.ReadLine();
                L5Delegate l5DelegateExpression = new L5Delegate(Names, sl);
                string[]   RzNamesExp           = l5DelegateExpression.CollectNames(delegate(string n, string s) { return(n.StartsWith(s)); });
                Print.PrintStrArr(RzNamesExp);
            }
            else if (InputedLo == "2")
            {
                Console.WriteLine("120 -- Input End Letter: ");
                string     el = Console.ReadLine();
                L5Delegate l5DelegateExpression = new L5Delegate(Names, el);
                string[]   RzNamesExp           = l5DelegateExpression.CollectNames(delegate(string n, string l) { return(n.EndsWith(l)); });
                Print.PrintStrArr(RzNamesExp);
            }
            else
            {
                return;
            }

            Console.WriteLine("\n 122 -- This will display how to use Lambda for Delegate -- and -- Func Interface.\n");
            Console.WriteLine("Please Letter Option -- 3 for Start Letter, 4 for End Letter.");
            string NewLt = Console.ReadLine();
            if (NewLt == "3")
            {
                Console.WriteLine("127 -- Input Start Letter: ");
                string        sl            = Console.ReadLine();
                L7FuncNLambda L7FL          = new L7FuncNLambda();
                string[]      RzNamesLambda = L7FL.CollectNames(((s, l) => s.StartsWith(l)), Names, sl);
                Print.PrintStrArr(RzNamesLambda);
            }
            else if (NewLt == "4")
            {
                Console.WriteLine("134 -- Input End Letter: ");
                string        el            = Console.ReadLine();
                L7FuncNLambda L7FL          = new L7FuncNLambda();
                string[]      RzNamesLambda = L7FL.CollectNames(((s, l) => s.EndsWith(l)), Names, el);
                Print.PrintStrArr(RzNamesLambda);
            }
            else
            {
                return;
            }

            Console.WriteLine("0 for +, 1 for -, 2 for *, 3 for /");
            string optString = Console.ReadLine();
            Console.WriteLine("Input first Number: ");
            double num0 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Input second Number: ");
            double     num1         = Convert.ToDouble(Console.ReadLine());
            L5Delegate l5DelegateOp = new L5Delegate(Names, "A");
            switch (optString)
            {
            case "0":
                l5DelegateOp.DoCalculate(DelegateMethods.plus, num0, num1);
                break;

            case "1":
                l5DelegateOp.DoCalculate(DelegateMethods.minus, num0, num1);
                break;

            case "2":
                l5DelegateOp.DoCalculate(DelegateMethods.multiple, num0, num1);
                break;

            case "3":
                l5DelegateOp.DoCalculate(DelegateMethods.devide, num0, num1);
                break;

            default:
                Console.WriteLine("This is Calculation Default Option...");
                break;
            }

            Console.WriteLine("\n170This time use Func<> and Lambda for delegate.");
            Console.WriteLine("0 for +, 1 for -, 2 for *, 3 for /");
            string optStr = Console.ReadLine();
            Console.WriteLine("Input first Number: ");
            double num2 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Input second Number: ");
            double        num3     = Convert.ToDouble(Console.ReadLine());
            L7FuncNLambda L7ForCal = new L7FuncNLambda();
            switch (optStr)
            {
            case "0":
                L7ForCal.ShowCalculateResult(((a, b) => a + b), num2, num3);
                break;

            case "1":
                L7ForCal.ShowCalculateResult(((a, b) => a - b), num2, num3);
                break;

            case "2":
                L7ForCal.ShowCalculateResult(((a, b) => a * b), num2, num3);
                break;

            case "3":
                L7ForCal.ShowCalculateResult(((a, b) => a / b), num2, num3);
                break;

            default:
                Console.WriteLine("This is Calculation Default Option...");
                break;
            }

            Console.WriteLine("\nThis is multiple cast Delegate.\n");
            Console.WriteLine("Input a string like: abcdefg");
            string aStr = Console.ReadLine();

            StringAndMultipleCastDelegate.UpperCaseString ShowUpperCase = DelegateMethods.FirstUpper;
            ShowUpperCase += DelegateMethods.LastUpper;
            ShowUpperCase += DelegateMethods.AllUpper;
            ShowUpperCase(aStr);

            #endregion

            #region L9-L11
            L9Linq LinqCountries = new L9Linq();
            LinqCountries.ShowAllCountries();

            L11LinqRetrunObj odObj = new L11LinqRetrunObj();
            odObj.ShowOrderDates();
            #endregion

            #region L12_L13
            L12_WhereClause wc = new L12_WhereClause();
            wc.LinqQueryWhere();
            wc.MethodSyntaxWhere();
            wc.OpDataCrossTablesNLevels();
            L13_BuildInFunction bf = new L13_BuildInFunction();
            bf.ShowBuildInFunction();
            #endregion

            Console.ReadLine();
        }
Ejemplo n.º 2
0
        public List <OrdersObjL1> ConstructOrders()
        {
            Random             RandomNums = new Random();
            List <OrdersObjL1> OrdersList = new List <OrdersObjL1>();

            #region Three_Objs
            OrdersObjL1 O0 = new OrdersObjL1
            {
                OrderId      = 0,
                OrderDate    = DateTime.Now.AddDays(-1),
                CustomerName = "Cust0",
                OrderAmount  = 33.33M,
                OrderItems   = new List <OrderItemL1>
                {
                    new OrderItemL1()
                    {
                        OrderItemId = 0, ProductName = "PdName0", Qty = RandomNums.Next(1, 100)
                    },
                    new OrderItemL1 {
                        OrderItemId = 1, ProductName = "PdName1", Qty = RandomNums.Next(1, 100)
                    },
                    new OrderItemL1 {
                        OrderItemId = 2, ProductName = "PdName2", Qty = RandomNums.Next(1, 100)
                    }
                },
                BillingAddress = new OrderAddressL1
                {
                    Address1 = "b-Addr1",
                    City     = "b-City1",
                    State    = "b-State1",
                    Zip      = "b-Zip1111"
                },
                ShippingAddress = new OrderAddressL1
                {
                    Address1 = "s-Addr1",
                    City     = "s-City1",
                    State    = "s-State1",
                    Zip      = "s-Zip1111"
                }
            };

            OrdersObjL1 O1 = new OrdersObjL1(1, DateTime.Now)
            {
                CustomerName = "Cust1", OrderAmount = 33.333M,
                OrderItems   = new List <OrderItemL1>
                {
                    new OrderItemL1()
                    {
                        OrderItemId = 3, ProductName = "PdName3", Qty = RandomNums.Next(1, 100)
                    },
                    new OrderItemL1()
                    {
                        OrderItemId = 4, ProductName = "PdName4", Qty = RandomNums.Next(1, 100)
                    }
                },
                BillingAddress = new OrderAddressL1
                {
                    Address1 = "b-Addr2",
                    City     = "b-City2",
                    State    = "b-State2",
                    Zip      = "b-Zip2222"
                },
                ShippingAddress = new OrderAddressL1
                {
                    Address1 = "s-Addr2",
                    City     = "s-City2",
                    State    = "s-State2",
                    Zip      = "s-Zip2222"
                }
            };

            OrdersObjL1 O2 = new OrdersObjL1(2, DateTime.Now.AddDays(1))
            {
                CustomerName = "Cust2", OrderAmount = 333.333M,
                OrderItems   = new List <OrderItemL1>
                {
                    new OrderItemL1()
                    {
                        OrderItemId = 5, ProductName = "PdName5", Qty = RandomNums.Next(1, 100)
                    },
                    new OrderItemL1()
                    {
                        OrderItemId = 6, ProductName = "PdName6", Qty = RandomNums.Next(1, 100)
                    },
                    new OrderItemL1()
                    {
                        OrderItemId = 7, ProductName = "PdName7", Qty = RandomNums.Next(1, 100)
                    }
                },
                BillingAddress = new OrderAddressL1
                {
                    Address1 = "b-Addr3",
                    City     = "b-City3",
                    State    = "b-State3",
                    Zip      = "b-Zip3333"
                },
                ShippingAddress = new OrderAddressL1
                {
                    Address1 = "s-Addr3",
                    City     = "s-City3",
                    State    = "s-State3",
                    Zip      = "s-Zip3333"
                }
            };
            #endregion

            OrdersList.Add(O0);
            OrdersList.Add(O1);
            OrdersList.Add(O2);
            return(OrdersList);
        }