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++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...
随机推荐
- first day for new job
第一天上班,做个总结. 总得来说,感觉非常不错,一个结论~保持头脑清醒,好好加油. 今天主要办一些入职手续,拿到了代码,后面几天主要就是熟悉应用的功能.源代码.想好好制定个计划,定日目标. 1.功能结 ...
- [转]MVP模式开发
转自:http://www.jianshu.com/p/f7ff18ac1c31 基于面向协议MVP模式下的软件设计-(iOS篇) 字数9196 阅读505 评论3 喜欢11 基于面向协议MVP模式下 ...
- IO中手机旋转事件的传递
UIApplication -> delegate -> widnow -> rootViewController
- Windows消息机制(转)1
Windows的应用程序一般包含窗口(Window),它主要为用户提供一种可视化的交互方式,窗口是总是在某个线程(Thread)内创建的.Windows系统通过消息机制来管理交互,消息(Message ...
- windows同一台电脑设置多个公钥与不同github帐号交互
1 生成公钥 1. 安装git,从C:\Documents and Settings\Administrator\.ssh\目录打开 "Git Bash":2. 键入命令:ssh- ...
- c# 取得扩展名
string KZM=files[0].FileName.Substring(files[0].FileName.LastIndexOf(".") + 1);
- android default_workspace.xml
//default_workspace.xml中,支持的标签有: favorite:应用程序快捷方式. shortcut:链接,如网址,本地磁盘路径等. search:搜索框. clock:桌面上的钟 ...
- C++类中的静态成员变量与静态成员函数
最近一直看c++相关的项目,但总是会被c++类中的静态成员变量与静态成员函数的理解感觉很是模糊,不明白为什么类中要是用静态成员变量.于是在网上搜集了一些资料,自己再稍微总结下. 静态成员的概念: 静态 ...
- liunx下安装mysql没有初始密码的解决方法
#/etc/init.d/mysql stop #cd /usr/local/mysql #mysqld_safe --user=mysql --skip-grant-tables --skip-ne ...
- 【Nutch2.2.1基础教程之6】Nutch2.2.1抓取流程
一.抓取流程概述 1.nutch抓取流程 当使用crawl命令进行抓取任务时,其基本流程步骤如下: (1)InjectorJob 开始第一个迭代 (2)GeneratorJob (3)FetcherJ ...