Linq技术——语言集成查询
首先要掌握的知识
一、隐式转换:应用于方法属性内部的变量声明
- var声明局部变量必须赋初始值,不能以NULL为初始值。
- 在类范围内(方法属性除外),不能使用var声明变量
public class Fun(){
public void fun()
{
var a = 2;
var b = "123";
var c = true
}
}
二、匿名类型:一个继承了Object的没有名称的类,C#在编译时会自动生产名称唯一的类。 (建立一个Person类,字段有id,name)
- 对象初始化:匿名类,和自定义类
var Person = new {id=1,name="张浩东"};
//由于没有类的名称,所以称为匿名类,是可以使用var定义的变量存储的
Person person = new Person{id=1,name="张浩东"};
//同样的道理,我们在此代码中,给自定义的Person类实例化时,
//并没有使用传统的方式初始化,而是使用了对
//象初始化器初始化对象
- 集合初始化器
list<string> lis = new list<string>()
{
"123",
"456",
"789"
}
自我感觉,匿名类的好处,就是在经行linq查询时,可以自定义一些字段来满足相应的需求,更加简便,例如计算总价格,性别bool判断,匿名成员必须使用必须使用 名称 来声明
Linq查询语句
from in ,where , select
匿名对象
var list = from item in Stulist where item.age>20 select new
{
sex = item.sex==true?"男":"女";
he = item.price* item.num;
}