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++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...
随机推荐
- 在ubuntu14.04上部署hadoop2.6.3
一.在Ubuntu下创建hadoop组和hadoop用户 增加hadoop用户组,同时在该组里增加hadoop用户,后续在涉及到hadoop操作时,我们使用该用户. 1.创建hadoop用户组 2.创 ...
- PHP的错误处理方式
错误类型 PHP 主要有两种错误:触发错误和异常.其中触发错误大概可以分为:编译错误.引擎错误和运行时错误,其中前两个是无法捕获的:异常都是可以捕获的,当没有尝试捕获时则会中断代码. 触发错误可以通过 ...
- NetAnalyzer笔记 之 一. 开篇语
[创建时间:2015-08-26 22:00:12] NetAnalyzer下载地址 第一次写技术相关的博客,不足之处还请担待并告知. 在开始之前,先简单介绍一下NetAnalyzer, NetAna ...
- ViewPager顶部标题控件PagerSlidingTabStrip
最近搞一个项目,要求做一个和网易新闻顶部菜单的滑动效果,如图: 顶部标题中下面有个红色的矩形小条,左右滑动时会跟随手势动态滑动,效果很绚丽,唉,特效啊! 自己搞了一上午无果,还是是github上找大神 ...
- JMeter分布式性能测试
利用JMeter进行负载测试的时候,使用单台机器模拟测试超过1000个行程的并发就有些力不从心,在执行的过程中,JMeter自身会自动关闭,要解决这个问题,可以使用分布式测试,运行多台机器运行所谓的 ...
- Linux gdb调试入门
没有使用过gdb调试过程序的觉得gdb是个很神奇的东东,如果你使用它调试一次保证你想忘记它都难,下面看看它的庐山真面目吧! GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具. ...
- Angular单页应用&AngularJS内部实现原理
回顾 自定义指令 登录后获取登录信息session 首先在登录验证的时候保存一个user 在学生管理页面中运用ajax调用获取到登录的用户信息 对注销按钮添加点击事件:调用ajax在表现层给user赋 ...
- JavaScript 对象 - 与属性的相关知识
function inherit(p){ if(p == null) throw TypeError(); if(Object.create) return Object.create(p); var ...
- js调用百度地图搜索功能
引用百度jsApi <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&a ...
- ashx调用session对象
1.引入命名空间 using System.Web.SessionState 2.必须实现接口 public class Login : IHttpHandler, IRequiresSessionS ...