C#——LINQ语句

委托:

//delegate 返回值 委托名(参数);   //委托不能在方法中定义
////实例化委托,并赋值
//委托名 实例名 = new 委托名(函数名)、lambda表达式;    //使用委托实例,就像使用普通的函数一样

Lambda表达式:

个人认为,和某些语言中的闭包类似,即表达式相当于一种匿名函数(可以赋值给委托delegate),例如lambda 表达式 x => x * x —— "=>"运算符的左边是输入参数,右边是返回值。

delegate int del(int i);
private void Form1_Load(object sender, EventArgs e)
{
    del aDelegate = x => x * x;
    label1.Text = aDelegate(10) + "";   //输出100
}

LINQ to SQL、LINQ to XML、LINQ to DataSet、LINQ to Objects。

基本使用:

1、Query语法:

int[] numbers = { 5, 10, 8, 3, 6, 12 };  //数据源必须是实现了IEnumerable接口的类型
//基本语法结构(这条语句不会马上执行,只有当queryNum这个变量被使用时,才会执行这条语句):
IEnumerable<int> queryNum =
    from num in numbers
    where num % 2 == 0
    orderby num
    select num;
label1.Text = "";
foreach (var i in queryNum)
{
    label1.Text += i + " ";
}

 2、Method语法:

//升序方法
IEnumerable<int> MethodNum = numbers.Where(num => num % 2 == 0).OrderBy(num => num);
label1.Text = "";
foreach (var i in MethodNum)
{
    label1.Text += i + " ";
}

LINQ的几种基本操作:

Select方法:

避免了反射的开销。

posted @ 2017-02-05 15:09  不抛弃,不放弃  阅读(6299)  评论(0编辑  收藏  举报