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 ...
随机推荐
- 详解 List接口
本篇博文所讲解的这两个类,都是泛型类(关于泛型,本人在之前的博文中提到过),我们在学习C语言时,对于数据的存储,用的差不多都是数组和链表. 但是,在Java中,链表就相对地失去了它的存在价值,因为Ja ...
- 2019 kali安装pip/pip3
新版的kali中内置的python没有安装pip 0x01 pip(python2)安装: https://bootstrap.pypa.io/2.6/get-pip.py python2 get-p ...
- [YII2] 文件上传类
//测试文件上传类 public function actionCreate() { $model = new Lvyou(); $upload_model = new \app\models\Upl ...
- MySQL学习之正则表达式篇
正则表达式(REGEXP) 1.简介 正则表达式是用来匹配列值的特殊字符集合,许多领域都有涉及, MySQL使用的正则表达式仅为其一个小小的子集. 2.基本字符匹配 2.1筛选包含特定字符串的信息 / ...
- redis的多路复用是什么鬼
有没有人和我一样, 自打知道了redis, 就一直听说什么redis单线程, 使用了多路复用等等. 天真的我以为多路复用是redis实现的技术. 今天才发现, 我被自己骗了, 多路复用是系统来实现的. ...
- ArangoDB 3.5:流事务API、搜索性能大幅提升、最短路径功能
ArangoDB 3.5 发布了.ArangoDB 是一个分布式原生的多模型数据库,具有灵活的文档.图形和键值数据模型.使用方便的 SQL 查询语言或 JavaScript 扩展构建高性能应用程序. ...
- java算法-二分法查找实现
什么是二分法查找 首先,使用二分法查找的前提是:被查找的数组已排好序 具体实现: 假如有一组数为3,12,24,36,55,68,75,88要查给定的值24.可设三个变量front,mid,end分别 ...
- 2019-2020-1 20199329《Linux内核原理与分析》第六周作业
<Linux内核原理与分析>第六周作业 一.本周内容概述: 学习系统调用的相关理论知识,并使用库函数API和C代码中嵌入汇编代码两种方式使用getpid()系统调用 学习系统调用syste ...
- 数据库SQL---数据库、基本表、视图、索引的定义、修改、删除
1.SQL(结构化查询语言)的组成:数据定义语言DDL.数据操纵语言DML.数据控制语言DCL.其他. 2.SQL语言的功能: 1)数据查询:SELECT 2)数据定义:CREATE DROP ...
- POJ1651:Multiplication Puzzle(区间dp)
Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9419 Accepted: 5850 ...