LINQ读书笔记(一)

LINQ概念

全称是语言集成查询(Language Integrated Query),他为查询各种不同的数据源提供给了一个统一的接口。通过这个接口,查询各种数据源可以使用近乎一致的方式和语法。


既然是一个接口,就有接口的调用者和接口的实现者(或者叫做提供者Provider)。接口的调用者通常是各式各样的应用程序,对他们来说,接口的使用方式是一致的;对于接口的实现者,则根据各种不同的数据源有着各自不同的实现。根据数据源的不同,LINQ也产生了不同的分支,比如LINQ to Object、LINQ to SQL、LINQ to XML、 LINQ to Entities、 LINQ to Excel等。

LINE各分支的关系
这里写图片描述

预备知识(与LINQ有关的语言特性)

隐式类型

1. 由来
在隐式类型出现之前
我们在生命一个变量的时候,
总是要为一个变量指定他的类型,
甚至在foreach一个集合的时候,
也要为遍历集合的元素,指定变量的类型
隐式类型的出现,让程序员不用在做这个工作了

2. 使用方法:一个var解决问题

var name = "Celien"; //string name="Celine";
            var age = 24;        //int age=24;

            //var sex; //错误:隐式类型的局部变量必须对它赋值
            //sex = "girl";

            var sex = "girl";  //string sex="girl";
            var person = new Person();//Person person=new Person()

匿名类型

  1. 由来
    匿名类型允许开发者不必预先定义类型,就创建类型的实例

  2. 使用方法

var cuteDog = new
            {
                Name = "Tom",
                age = 1,
                Favorites = new[] { "play", "eat", "sleep" }
            };

new关键字之后就直接为对象定义了属性,并且为这些属性赋值
而且,对象创建出来之后,在创建对象的方法中,还可以畅通无阻的访问对象的属性

自动属性

当我们创建一个类的时候,类中的一些私有变量对我们一点用处也没有,比如对象关系映射中的实体类,这时候我们可以利用自动实现的属性解决这个问题

    class Person {

        private string _name;
        private int _age;
        public string Name {
            get { return _name; }
            set { _name = value; }

        }

        public int Age {
            get { return _age; }
            set { _age = value; }
        }

        //以上的属性也可以按下边的方式呈现——C#3.0之后引入自动实现属性
        public int id { get; set; }  
        public string Title { get; set; }
    }

总结

下一篇会继续总结和LINQ有关的关键技术:扩展方法、匿名方法和Lambda表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值