LINQ (Language-Integrated Query,语言集成查询)。

LINQ to Objects、LINQ to SQL、LINQ to DataSet和LINQ to XML,它们分别查询和处理对象数据(如集合)、关系数据(如SQL Server数据库等)、DataSet对象数据和XML结构数据。    主要对数据进行操作

-----------------------------------------------------

LINQ 语法基础——C#3.0

-------------------------------------------

使用var创建隐型局部变量

Int number=;    String [] strs=new string [];                           UserInfo ui=new UserInfo();
var number=;    var strs=new string[]{“”,””,””,””};             var ui=new UserInfo();

var关键字指示编译器能够根据变量的初始化表达式推算出该变量的类型,即使用var关键字声明变量时隐藏了该变量的类型。Var关键字可以在以下四种情况下使用。

1.声明局部变量;

2.For语句中;

3.Foreach语句中;

4.Using 语句中;

对象初始化器

使得开发人员可以不调用类的构造函数就能够以声明性方式创建一个新的对象,并设置该对象的各个属性的值。

UserInfo ui = new UserInfo
{
Username = "张三",
Useraddr = "武汉",
Userage = "",
Usersex = "男",
Usertel = "027-50459016" //userInfo里面有的属性可以直接设置
};

集合初始化器

合初始化器用来初始化一个集合,它由一系列元素组成,并封闭于“{”和 “}”标记内。

 List<int> numbers = new List<int> () { , , , , , , , , ,  }; //可以在{}里面初始化一个集合

创建匿名类型对象

使用new操作符和匿名对象初始化器能够创建一个新的对象。

//创建匿名类型的对象
var user = new { ID = , USERNAME = "张三", USERSEX = "男", USERADDR = "武汉" };

创建隐形数组

隐形数组和匿名类型对象比较相似。隐形数组使用var关键字和数组初始化器创建,且数组初始化器中的元素的数据类型必须都能够隐式转换为同一个数据类型(不能为null)的元素

var numbers = new[] { , , , , , , , , ,  };
var strs = new[] { "he", "she", "it" };

Lambda表达式  :使用委托的位子就可以使用Lambda表达式

Lambda表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。Lambda表达式由输入参数、Lambda运算符(=>)和表达式(或语句块)构成。Lambda表达式的基本形式如下:

(input parameters) => expression

input parameters表示输入参数,expression表示表达式。输入参数位于Lambda运算符的左边,表达式或语句块位于Lambda运算符的右边,Lambda运算符 =>读作 “goes to”

    //声明一个委任 ,跟Clss同级
delegate int MyDelegate(int i);
   delegate void Md2();
class Program
{
static void Main(string[] args)
{
MyDelegate md = delegate(int x) //普通的委任
{
return x * x;
};
MyDelegate md = (x) => x * x; //Lambda表达式
int a = md();
Console.WriteLine(a);
        Md2 md2 = () => { Console.WriteLine("Hello!!"); }; //Lambda表达式
       md2();
}
}
     (x , y) =>  {   int  result = x*y;  Response.Write(result.ToString());     }    //多语句时使用语句块{}

哪里用的上:   例如:    集合里面的Find(),FindAll()的参数就是委托

  List<int> ll = new List<int> { , , , , , , , , , ,  };

            foreach (var item in ll.FindAll((x) => x %  == ))
{
Console.WriteLine(item);
}

Lambda表达式的右边不但可以是一个表达式,而且还可以是语句块

查询中的Lambda表达式

Lambda表达式最常见的用法就是查询。下面的实例代码在Select操作中使用,Lambda表达式查询元素,并在网页上输出查询结果。

int[] list = new int[] { , , , , , , , , , , , ,  };
//select投影 返回到新的变量中  Func就是委托 int为参数,TR为返回的值 Func<int,TR> =delegate(int a){return 1;}
var temp = list.Select((x) => x).Distinct(); //Distinct返回非重复的值
//OrderByDescending 倒序排列
var arry = list.OrderByDescending((x) => x); 

foreach (var item in temp)
{
   Console.WriteLine(item);
}

LinQ 语法基础的更多相关文章

  1. C#语法之Linq查询基础二

    上篇C#语法之Linq查询基础一基本把Linq介绍了一下,这篇主要是列举下它的几个常见用法. 在用之前先准备些数据,新建了两个类Student.Score,并通过静态方法提供数据. using Sys ...

  2. Linq语法详细

    闲言碎语 近期比较忙,但还是想写点什么,就分享一些基础的知识给大家看吧,希望能帮助一些linq新手,如果有其它疑问,可以进右上角群,进行交流探讨,谢谢. 开门见山 读这篇文章之前,我先说下,每一种搜索 ...

  3. Lamda和Linq语法对比详细

    本人转载:http://www.cnblogs.com/knowledgesea/p/3897665.html 闲言碎语 近期比较忙,但还是想写点什么,就分享一些基础的知识给大家看吧,希望能帮助一些l ...

  4. Linq语法常见普通语法

    闲言碎语 近期比较忙,但还是想写点什么,就分享一些基础的知识给大家看吧,希望能帮助一些linq新手,如果有其它疑问,可以进右上角群,进行交流探讨,谢谢. 开门见山 读这篇文章之前,我先说下,每一种搜索 ...

  5. Mongodb C#客户端数据关联数据,使用Linq语法进行关联

    在Mongodb C# drivers 文档 官方地址:https://docs.mongodb.com/ecosystem/drivers/csharp/ 基础的使用请参考<c# Mongod ...

  6. [转]Linq语法二

    本文将讲述LINQ的基础查询(此文所有例子都使用LINQ to Object) 在此之前,我们先创建一个用于示例的数据源: Student类:表示学生,包括学号.姓名及班级 Courses类:表示学生 ...

  7. LINQ查询基础

    一.什么是LINQ LINQ是Language Integrate Query的缩写,意为语言集成查询,是微软在.Net Framework 4.5版中推出的主要特性之一. 它为开发人员提供了统一的数 ...

  8. EntityFramework数据持久化 Linq语法应用

    Linq基础语法 LINQ概述 LINQ(Language Integrated Query,语言集成查询)提供了一种跨数据源和数据格式查询的统一模型. LINQ的组成: LINQ To Object ...

  9. JAVA 入门第一章(语法基础)

    本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...

随机推荐

  1. hdu1429之BFS

    胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  2. [置顶] STM32移植contiki进阶之三(中):timer 中文版

    鉴于自己英语水平不高,在这里,将上一篇关于contiki 的timer的文章翻译为中文,让自己在学习的时候,更方便点.文中有许多不是很通顺的地方,将就吧. Timers Contiki系统提供了一套时 ...

  3. android面试题之七

    三十六.请解释下在单线程模型中Message.Handler.Message Queue.Looper之间的关系. 简单的说,Handler获取当前线程中的looper对象,looper用来从存放Me ...

  4. [RxJS] Reactive Programming - New requests from refresh clicks -- merge()

    Now we want each time we click refresh button, we will get new group of users. So we need to get the ...

  5. QiniuUpload- 一个方便用七牛做图床然后插入markdown的小工具

    最近一段时间有用markdown做笔记,其他都好,但是markdown插入图片挺麻烦的,特别是想截图之后直接插入的时候.需要首先把图片保存了,然后还要上传到一个地方生成链接才能插入.如果有个工具可以直 ...

  6. 文本输入框的两种div+css的写法

    1.扁平化的设计风格.--淘宝   直接使用input.对其设置height.padding.使鼠标居中又不会占满输入框.       2.背景是图片的设计.--百度   试用span将input包裹 ...

  7. 页面全屏显示JS代码

    1.直接在页面加载时就全屏. <body onload="window.open(document.location,'big','fullscreen=yes'):window.cl ...

  8. jmeter初识

    Jmeter是一款开源的性能测试工具,基于协议的方式生成脚本进行负载,模仿几十或上百的用户访问程序,相比Loadrunner,Jmeter只有几十个M,Jmeter需要jdk环境的配置,计数器和报告没 ...

  9. C#传值

    C#若不加限制传值时自带的类型为值传递,自创的类型为引用传递 using System; using System.Collections.Generic; using System.Linq; us ...

  10. java的InputStream和InputStreamReader有什么区别??

    解释一: InputStream  此抽象类是表示字节输入流的所有类的超类 InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符.它使用 ...