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++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...
随机推荐
- C# 酒鬼买酒喝,瓶盖和空瓶子可以换新的酒
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- samba后台进程及安全模式简介
识别 Samba 后台程序Linux 服务器通常作为守护程序(daemon) 来实现,这一词源于希腊神话,其中守护神(daemon)是超自然生物.Linux 守护程序在后台运行以便执行一些有用的任务. ...
- 解决linux不能使用chmod更改权限的问题
本人安装的是win10和ubuntu的双系统,发现在ubuntu下挂载windows硬盘不用命令chmod更改文件的权限,解决方法记录如下: 对于使用命令$ chmod 777 dirname更改不了 ...
- (转) [老老实实学WCF] 第三篇 在IIS中寄存服务
第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我们对WCF的编程生 ...
- Winform 无边框随意拖动【转载】
本篇技术内容转载自:http://www.cnblogs.com/ap0606122/archive/2012/10/23/2734964.html using System; using Syste ...
- String StringBuffer StringBuilder (转)
转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...
- 引用 exit、return、_exit、_Exit这几个函数的区别
引用 exit.return._exit._Exit这几个函数的区别 一.exit函数和return函数的主要区别是: exit用于在程序运行的过程中随时结束程序,其参数是返回给OS的.也可以这么讲: ...
- [Leetcode] implement strStr() (C++)
Github leetcode 我的解题仓库 https://github.com/interviewcoder/leetcode 题目: Implement strStr(). Returns ...
- git教程 入门
快速上传已有代码到github 如何将最新代码上传到github,这里讲本地已有项目文件的情况(假如本地有一个helloworld的工程目录,目录中有很多项目文件.),步骤如下: 前提:已安装git客 ...
- poj 1037 A decorative fence
题目链接:http://poj.org/problem?id=1037 Description Richard just finished building his new house. Now th ...