揭开LINQ面纱(1)

1.LINQ操作数组

 int[] arr = { 213, 454, 6477, 841, 1, 3, 46, 75, 692, 465, 134, 4156, 123, 456, 789 };
            IEnumerable ie = arr.Select(p => p).Where(p => p > 50);
            IEnumerator result = ie.GetEnumerator();
            while (result.MoveNext())
            {
                Console.WriteLine(result.Current);
            }

 

 

2.LINQ扩展方法

 1)扩展方法一定要静态

 2)内部的方法权限不得高于当前的类的权限

 3)this 表示对该属性进行扩展s

 

 

 //静态类
    public static class ExtraClass
    {
        // 静态特殊方法
        public static string ToPascal(this string name)
        {
            return name.Substring(0, 1).ToUpper() + name.Substring(1).ToLower();
        }
        public static string ToPascal(this string name, int len)
        {
            return name.Substring(0, 1).ToUpper() + name.Substring(1, len).ToLower();
        }

}

 

 

 

3.Lambda表达式

 

       //定义个委托
        public delegate string deleTransfer(string s);//方法签名是字符串

 

 

           //.net FrameWork 1.0 委托--函数指针
            deleTransfer trans = new deleTransfer(ToPascal);//委托指向方法
            listBox1.Items.Add("委托" + trans("zhangsan"));

            //.net FrameWork 2.0 匿名方法
            deleTransfer trans1 = delegate(string name) { return name.Substring(0, 1).ToUpper() + name.Substring(1).ToLower(); };
            listBox1.Items.Add("匿名方法" + trans1("zhangsan"));

            //.net FrameWork 3.5 匿名方法 (参数列表)=>{方法体}
            deleTransfer trans2 = s => s.ToUpper();
            listBox1.Items.Add("3.5匿名方法" + trans2("zhangsan"));

 

       //将字符串的手写字母转化为大写字母
        public string ToPascal(string name)
        {
            return name.Substring(0, 1).ToUpper() + name.Substring(1).ToLower();
        }

 

 

 

4.LINQ基本操作

 

            List<string> persons = new List<string>();
            persons.Add("zhangsan");
            persons.Add("lisi");
            persons.Add("wangwu");
            persons.Add("wanglaobo");
            persons.Add("huangxiaoming");
            persons.Add("zhangweijian");
            persons.Add("xietingfeng");
            //输出所有的
            //var result=persons.Select(p => p);


            //输出首字母为w的人
            //var result = persons.Where(p => p.StartsWith("w"));

          

           //根据名称进行排序
            var result = persons.OrderBy(p => p);

 

5.跳过

List<string> persons = new List<string>();
            persons.Add("zhang san");
            persons.Add("li si");
            persons.Add("wang wu");
            persons.Add("wang laobo");
            persons.Add("huangxiaoming");
            persons.Add("zhangweijian");
            persons.Add("xietingfeng");

           //跳过两个取出后面的值
            var result=persons.Skip(2);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值