泛型+Linq+Lambda 初步接触

本文介绍了Java中泛型的基本概念,探讨了Linq的查询操作,并详细阐述了Lambda表达式的使用方式,通过实例展示了它们如何简化代码并提高编程效率。
摘要由CSDN通过智能技术生成
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        //泛型学习小Demo
        public class TestFANXING<T>
        {
            public T obj;
            //构造函数
            public TestFANXING(T x)
            {
                this.obj = x;
                this.GetFanXingDataType();
            }
            //属性
            private T abc;
            public T ABC
            {
                get { return abc; }
                set { abc = value; }
            }
            //内部方法
            private void GetFanXingDataType()
            {
                Console.WriteLine(obj.GetType().ToString());
            }
        }
        //常规委托
        delegate string MyDelegate(string title, string name);
        //泛型委托
        delegate T MyDelegate2<T>(T a, T b);
        //常规方法
        public static string ShowInfo(string Firstname, string LastName)
        {
            return Firstname + "" + LastName;
        }
        static void Main(string[] args)
        {
            //Linq
            Console.WriteLine("[01]LINQ 需要三个部分: 数据源、查询、查询的执行。");
            int[] numbers = new int[7] { 0, 1, 4, 2, 3, 6, 5 };
            //定义一个变量num
            //它从numbers中取值
            //条件是偶数
            //把满足条件的结果赋值给numQuery
            var numQuery = from num in numbers where (num % 2) == 0 orderby num select num;
            foreach (int m in numQuery)
            {
                Console.WriteLine("{0}", m);

            }
            Console.ReadLine();
            Console.WriteLine("=====================================");
            //Linq的另一种写法
            var numQuery2 = numbers.Where(p => p % 2 == 1);
            foreach (int n in numQuery2)
            {
                Console.WriteLine("{0}", n);

            }
            Console.WriteLine("=====================================");
            //常规委托调用方法
            MyDelegate Del0 = new MyDelegate(Program.ShowInfo);
            Console.WriteLine(Del0("W", "xianS"));
            Console.WriteLine("=====================================");
            //常规委托与Lambda
            MyDelegate Del = (title, name) => string.Format("{0}{1}", title, name);
            Console.WriteLine(Del("GoldCup", "Rna"));
            Console.WriteLine("=====================================");
            //常规委托与Lambda
            MyDelegate Del2 = (title, name) =>
            {
                string s = string.Format("{0}{1}", title, name);
                return s;
            };
            Console.WriteLine(Del2("c#", "Java"));
            Console.WriteLine("=====================================");
            //泛型委托与Lambda
            MyDelegate2<string> Del3 = (A, B) => string.Format("{0}{1}", A, B);
            Console.WriteLine(Del3("wang","xianshou"));
            Console.WriteLine("=====================================================");
            //泛型委托与Lambda
            MyDelegate2<int> Del4 = (C, D) => 
            {  
                 int iResult = C + D; 
                 return iResult;  
            };  
             Console.WriteLine(Del4(3, 4).ToString());  
             Console.ReadKey();  


            int y = 2;
            int y1 = 5;
            //泛型int应用
            TestFANXING<int> test = new TestFANXING<int>(y);
            test.ABC = y1;
            Console.WriteLine("int:"+test.obj);
            Console.WriteLine("shuxing int:" + test.ABC);
            //泛型string应用
            string z = "helloworld";
            TestFANXING<string> test1 = new TestFANXING<string>(z);
            Console.WriteLine("string:"+test1.obj);
            //泛型datetime应用
            TestFANXING<DateTime> test2 = new TestFANXING<DateTime>(new DateTime(2008, 8, 8));
            test2.ABC = new DateTime(2012, 3, 28);
            Console.WriteLine("shuxing datetime:" + test2.obj.ToString()+"---"+test2.ABC.ToString());
            Console.ReadLine();
        }
    }
   

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值