//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的基本子句、协变与异变的更多相关文章

  1. Linq之select子句

    在Linq中select子句用来指定查询结果的类型和表现形式.Linq查询要么以select子句结尾,要么以group子句结尾. List<UserBaseInfo> users = ne ...

  2. 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变

    在net中json序列化与反序列化   准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...

  3. C#4.0泛型的协变,逆变深入剖析

    C#4.0中有一个新特性:协变与逆变.可能很多人在开发过程中不常用到,但是深入的了解他们,肯定是有好处的. 协变和逆变体现在泛型的接口和委托上面,也就是对泛型参数的声明,可以声明为协变,或者逆变.什么 ...

  4. C#协变和逆变

    我们知道在C#中,是可以将派生类的实例赋值给基类对象的.

  5. C# 泛型的协变和逆变

    1. 可变性的类型:协变性和逆变性 可变性是以一种类型安全的方式,将一个对象当做另一个对象来使用.如果不能将一个类型替换为另一个类型,那么这个类型就称之为:不变量.协变和逆变是两个相互对立的概念: 如 ...

  6. 不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事

    阿袁工作的第1天: 不变(Invariant), 协变(Covarinat), 逆变(Contravariant)的初次约 阿袁,早!开始工作吧. 阿袁在笔记上写下今天工作清单: 实现一个scala类 ...

  7. 再谈对协变和逆变的理解(Updated)

    去年写过一篇博客谈了下我自己对协变和逆变的理解,现在回头看发现当时还是太过“肤浅”,根本没理解.不久前还写过一篇“黑”Java泛型的博客,猛一回头又是“肤浅”,今天学习Java泛型的时候又看到了协变和 ...

  8. 【转】c# 协变和逆变

    本文转自:http://www.cnblogs.com/rr163/p/4047404.html C#的协变和逆变 由子类向父类方向转变是协变,用out关键字标识,由父类向子类方向转变是逆变,用in关 ...

  9. .NET 4.0中的泛型的协变和逆变

    转自:http://www.cnblogs.com/jingzhongliumei/archive/2012/07/02/2573149.html 先做点准备工作,定义两个类:Animal类和其子类D ...

随机推荐

  1. Ansible Facts 变量详解

    Ansible Facts 变量详解与使用案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. ...

  2. 学Python的你必须要知道,这十个Python常用库

    想知道Python取得如此巨大成功的原因吗?只要看看Python提供的大量库就知道了 包括原生库和第三方库. 不过,有这么多Python库,有些库得不到应有的关注也就不足为奇了. 此外,只在一个领域里 ...

  3. 非常简单的string驻留池,你对它真的了解吗

    昨天看群里在讨论C#中的string驻留池,炒的火热,几轮下来理论一堆堆,但是在证据提供上都比较尴尬.虽然这东西很基础,但比较好的回答也不是那么容易,这篇我就以我能力范围之内跟大家分享一下 一:无处不 ...

  4. Manjaro Linux 入门使用教程

    Manjaro 初体验 Manjaro 是一款基于 Arch LInux 的自由开源发行版,它吸收了 Arch Linux 优秀丰富的软件管理,同时提供了稳定流畅的操作体验.优雅简单是它的追求,稳定实 ...

  5. zabbix监控ftp

    [root@agent ~]# yum -y install vsftpd [root@agent ~]# systemctl start vsftpd[root@agent ~]# systemct ...

  6. 解决Idea配置文件不显示中文的问题

    1.首先我们的IDEA文件编码一般都修改为utf-8(setting-->file encodings--->Global Encoding 和 Project Encoding 都设置为 ...

  7. 【Linux常见命令】seq命令

    seq - print a sequence of numbers seq命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式.宽度.分割符号进行 ...

  8. Mac自带编码转换工具iconv

    iconv --help Usage: iconv [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...] or: iconv -l Conver ...

  9. 全网最清晰的ConstraintLayout教程

    ConstraintLayout是AndroidStudio2.2新增的一个功能,那么这个到底是什么呢?首先第一点我们知道传统的安卓开发,页面基本都是XML编写实现,特别在一些复杂的页面上需要嵌套多层 ...

  10. 单源最短路径(3):SPFA 算法

    SPFA(Shortest Path Faster Algorithm)算法,是西南交通大学段凡丁于 1994 年发表的,其在 Bellman-ford 算法的基础上加上一个队列优化,减少了冗余的松弛 ...