LinQ 语法基础
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 语法基础的更多相关文章
- C#语法之Linq查询基础二
上篇C#语法之Linq查询基础一基本把Linq介绍了一下,这篇主要是列举下它的几个常见用法. 在用之前先准备些数据,新建了两个类Student.Score,并通过静态方法提供数据. using Sys ...
- Linq语法详细
闲言碎语 近期比较忙,但还是想写点什么,就分享一些基础的知识给大家看吧,希望能帮助一些linq新手,如果有其它疑问,可以进右上角群,进行交流探讨,谢谢. 开门见山 读这篇文章之前,我先说下,每一种搜索 ...
- Lamda和Linq语法对比详细
本人转载:http://www.cnblogs.com/knowledgesea/p/3897665.html 闲言碎语 近期比较忙,但还是想写点什么,就分享一些基础的知识给大家看吧,希望能帮助一些l ...
- Linq语法常见普通语法
闲言碎语 近期比较忙,但还是想写点什么,就分享一些基础的知识给大家看吧,希望能帮助一些linq新手,如果有其它疑问,可以进右上角群,进行交流探讨,谢谢. 开门见山 读这篇文章之前,我先说下,每一种搜索 ...
- Mongodb C#客户端数据关联数据,使用Linq语法进行关联
在Mongodb C# drivers 文档 官方地址:https://docs.mongodb.com/ecosystem/drivers/csharp/ 基础的使用请参考<c# Mongod ...
- [转]Linq语法二
本文将讲述LINQ的基础查询(此文所有例子都使用LINQ to Object) 在此之前,我们先创建一个用于示例的数据源: Student类:表示学生,包括学号.姓名及班级 Courses类:表示学生 ...
- LINQ查询基础
一.什么是LINQ LINQ是Language Integrate Query的缩写,意为语言集成查询,是微软在.Net Framework 4.5版中推出的主要特性之一. 它为开发人员提供了统一的数 ...
- EntityFramework数据持久化 Linq语法应用
Linq基础语法 LINQ概述 LINQ(Language Integrated Query,语言集成查询)提供了一种跨数据源和数据格式查询的统一模型. LINQ的组成: LINQ To Object ...
- JAVA 入门第一章(语法基础)
本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...
随机推荐
- tomcat 7配置数据库连接池,使用SQL Server2005实现
昨 天看了一些网上的tomcat数据库连接池配置的东西,但是一直没配好,主要原因是网上的文章几乎没有针对tomcat 7进行配置的,而且针对SQL SERVER的也不多,今天上午看了官方的文档,花了一 ...
- Android BLE开发之Android手机与BLE终端通信
本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 近期穿戴设备发展得非常火.把相关技术也带旺了,当中一项是BLE(Bluetooth Low Energy).B ...
- Builder模式 初体验
看来Java构造器模式,决定动手体验下.构造器模式是什么?干什么用的?推荐大家看下ITEYE的一篇文章 http://www.iteye.com/topic/71175 了解构 ...
- Cortex-A9 PWM Timer
PWM定时器 4412时钟为我们提供了PWM定时器,在4412中共有5个32位的定时器,这些定时器可发送中断信号给ARM子系统.另外,定时器0.1.2.3包含了脉冲宽度调制(PWM),并 ...
- 深入解析MySQL replication协议
Why 最开始的时候,go-mysql只是简单的抽象mixer的代码,提供一个基本的mysql driver以及proxy framework,但做到后面,笔者突然觉得,既然研究了这么久mysql c ...
- ubuntu中安装Docker
系统要求: 必须时64位的系统,内核最低要求是3.10 查看系统内核: $ uname -r 3.11.0-15-generic 获取最新版本打Docker: $ wget -qO- https:// ...
- Jquery:强大的选择器<一>
今天回家之后,学习的是Jquery的选择器.选择器作为Jquery的优势之一,确实让我感觉到了它的强大.Jquery选择器分为基本选择器.层次选择器.过滤选择器和表单选择器,下面我一一介绍这四种选择器 ...
- IOS 代码管理工具
代码管理工具国内主要用的是SVN 国外主要是Git
- [Leetcode] Merge Sorted Array (C++)
我在Github上新建了一个解答Leetcode问题的Project, 大家可以参考, 目前是Java 为主,里面有leetcode上的题目,解答,还有一些基本的单元测试,方便大家起步. 题目: Gi ...
- 另类的package-info.java文件探讨
原文地址:http://strong-life-126-com.iteye.com/blog/806246 翻看以前的笔记,看到一个特殊的java文件:pacakge-info.java,虽然有记录, ...