C# LinQ的基本子句、协变与异变
//1.from 子句:
int[] arr = { , , , , , , , , , };
var query = from n in arr
where n >
select n;
foreach (var i in query)
{
Console.WriteLine("" + i);
} //2.select 子句:
int[] arr = { , , , , , , , , , };
var query = from n in arr
select n * ;
foreach (var i in query)
{
Console.WriteLine("" + i);
} //3.where 子句:
int[] arr = { , , , , , , , , , };
var query = from n in arr
where test(n) >
select n;
foreach (var i in query)
{
Console.WriteLine(i);
} //4.let 子句:
int[] arr = { , , , , , , , , , };
var query = from n in arr
let num = n *
where num >
select n;
foreach (var i in query)
{
Console.WriteLine(i);
} //5.order by 子句:
int[] arr = { , , , , , , , , , };
var query = from n in arr
where n >
orderby n descending
select n;
foreach (var i in query)
{
Console.WriteLine(i);
} //6.group by 子句:
int[] arr = { , , , , , , , , , };
var query = from n in arr
where n >
group n by n % ;
foreach (var i in query)
{
foreach (var j in i)
{
Console.WriteLine(j);
}
} //7.into 子句:
int[] arr = { , , , , , , , , , };
var query = from n in arr
where n >
group n by n % into temp
from sn in temp
select sn;
foreach (var i in query)
{
Console.WriteLine(i);
} //8.join 子句:
int[] arrA = { , , , , , , , , };
int[] arrB = { , , , , };
var query = from n in arrA
join ni in arrB on n equals ni
select ni;
foreach (var i in query)
{
Console.WriteLine(i);
}
/*
* 1.协变与异变:
* 协变:指能够使用与原始指定的派生类型相比,派生程度更大的类型
* string-->object
* 逆变:指能够使用派生程度更新的类型
* object-->string
* */
string[] arr = { "C#", "java", "javascript", "VC", "VB", "VB.net", "C++" };
var query = from n in arr
group n by n.Length into lentGroup
orderby lentGroup.Key //协变与逆变
select lentGroup;
foreach (var i in query)
{
Console.WriteLine("" + i.Key);
foreach (var str in i)
{
Console.WriteLine("" + str);
}
}
C# LinQ的基本子句、协变与异变的更多相关文章
- Linq之select子句
在Linq中select子句用来指定查询结果的类型和表现形式.Linq查询要么以select子句结尾,要么以group子句结尾. List<UserBaseInfo> users = ne ...
- 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变
在net中json序列化与反序列化 准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...
- C#4.0泛型的协变,逆变深入剖析
C#4.0中有一个新特性:协变与逆变.可能很多人在开发过程中不常用到,但是深入的了解他们,肯定是有好处的. 协变和逆变体现在泛型的接口和委托上面,也就是对泛型参数的声明,可以声明为协变,或者逆变.什么 ...
- C#协变和逆变
我们知道在C#中,是可以将派生类的实例赋值给基类对象的.
- C# 泛型的协变和逆变
1. 可变性的类型:协变性和逆变性 可变性是以一种类型安全的方式,将一个对象当做另一个对象来使用.如果不能将一个类型替换为另一个类型,那么这个类型就称之为:不变量.协变和逆变是两个相互对立的概念: 如 ...
- 不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事
阿袁工作的第1天: 不变(Invariant), 协变(Covarinat), 逆变(Contravariant)的初次约 阿袁,早!开始工作吧. 阿袁在笔记上写下今天工作清单: 实现一个scala类 ...
- 再谈对协变和逆变的理解(Updated)
去年写过一篇博客谈了下我自己对协变和逆变的理解,现在回头看发现当时还是太过“肤浅”,根本没理解.不久前还写过一篇“黑”Java泛型的博客,猛一回头又是“肤浅”,今天学习Java泛型的时候又看到了协变和 ...
- 【转】c# 协变和逆变
本文转自:http://www.cnblogs.com/rr163/p/4047404.html C#的协变和逆变 由子类向父类方向转变是协变,用out关键字标识,由父类向子类方向转变是逆变,用in关 ...
- .NET 4.0中的泛型的协变和逆变
转自:http://www.cnblogs.com/jingzhongliumei/archive/2012/07/02/2573149.html 先做点准备工作,定义两个类:Animal类和其子类D ...
随机推荐
- 2. js的异步
1. 回掉2. promise3. Generator4. Async/await
- [一道蓝鲸安全打卡Web分析] 文件上传引发的二次注入
蓝鲸打卡的一个 web 文件上传引发二次注入的题解和思考 蓝鲸文件管理系统 源代码地址:http://www.whaledu.com/course/290/task/2848/show 首先在设置文件 ...
- Java中接口的概念
接口的特点: A:接口用关键字interface表示 interface 接口名 {} B:类实现接口用 implements 表示 class 类名 implements 接口名 {} C:接口不能 ...
- 域名和服务器绑定及https协议更换
服务器是之前已经购买了的 1.腾讯云产品中搜索域名注册(产品太多了懒得找,直接搜索来得快些) 2.进去之后可以选择各种后缀的域名,输入自己喜欢的,看看哪些后缀是没有被注册的.自己挑选一个就可以,按照指 ...
- Spark-BlockManager
简单说明 BlockManager是管理整个Spark运行时数据的读写,包含数据存储本身,在数据存储的基础之上进行数据读写.由于Spark是分布式的,所有BlockManager也是分布式的,Bloc ...
- <string>头文件常用成员函数
之前说过 string和vector一样,也是一种顺序容器,并且它也自带成员函数,用法和vector的成员函数差不多,不过它只能用来存放字符,也就是字符串. 在c++中,<string>基 ...
- Tidyverse|数据列的分分合合,爱恨情仇
Tidyverse|数据列的分分合合,爱恨情仇 本文首发于“生信补给站”Tidyverse|数据列的分分合合,一分多,多合一 TCGA数据挖掘可做很多分析,前期数据“清洗”费时费力但很需要. 比如基因 ...
- Selenium常见报错问题(3)- 解决和分析NoSuchElementException
如果你在跑selenium脚本时,需要某些异常不知道怎么解决时,可以看看这一系列的文章,看看有没有你需要的答案 https://www.cnblogs.com/poloyy/category/1749 ...
- 理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos
理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos Cheap Paxos Message flow: Cheap Multi-Paxos Fast Paxos ...
- 009.Ansible模板管理 Jinja2
一 Jinja2简介 Jinja2是基于python的模板引擎. 假设说现在我们需要一次性在10台主机上安装redis,这个通过playbook现在已经很容易实现.默认情况下,所有的redis安装完成 ...