//有两个数组,客户和地址,他们之间通过公司名关联:var customers = new[] { new {CustomerID=1,FirstName="Kim",LastName="Abercrombie",CompanyName="Alpine Sky House"},new {CustomerID=2,FirstName="Jeff",LastName="Hay",CompanyName="Coho Winery"},new {CustomerID=3,FirstName="Charlie",LastName="Herb",CompanyName="Alpine Sky House"},new {CustomerID=4,FirstName="Chris",LastName="Preston",CompanyName="Trey Reseach"},new {CustomerID=5,FirstName="Dave",LastName="Barnett",CompanyName="Wingtip Toys"},new {CustomerID=6,FirstName="Ann",LastName="Beebe",CompanyName="Coho Winery"},new {CustomerID=7,FirstName="John",LastName="Kane",CompanyName="Wingtip Toys"},new {CustomerID=8,FirstName="David",LastName="Simpson",CompanyName="Trey Reseach"},new {CustomerID=9,FirstName="Greg",LastName="Abercrombie",CompanyName="Wingtip Toys"},new {CustomerID=10,FirstName="Tim",LastName="Abercrombie",CompanyName="Wide World Importers"}};var addresses = new[] { new {CompanyName="Alpine Sky House",City="Berne",Country="Switzerland"},new {CompanyName="Coho Winery",City="San Francisco",Country="United States"},new {CompanyName="Trey Reseach",City="New York",Country="United States"},new {CompanyName="Wingtip Toys",City="London",Country="United Kingdom"},new {CompanyName="Wide World Importers",City="Tetbury",Country="United Kingdom"}};//------------------筛选出customers数组中客户名(从枚举集合投射指定字段)----------------------//1.使用Select方法,用Lambda表达式标识要投射的字段(IEnumerable类可换var)IEnumerable<string> customerFirstNames = customers.Select(cust=>cust.FirstName);//2.使用from和select查询操作符var customerFirstNames = from custs in customers select custs.FirstName;//-----------------筛选出地址数组中国家是美国的公司名称(筛选来自可枚举集合的行)----------------------//1.使用Where方法,用Lambda表达式指定行的匹配条件var usCompanies=addresses.Where(addr=>String.Equals(addr.Country,"United States")).Select(usComp=>usComp.CompanyName);//2.使用where操作符var usCompanies=from addr in addresses where String.Equals(addr.Country,"United States") select addr.CompamyName;//----------------筛选出地址数组中公司名称并降序排序(按特定顺序枚举数据)--------------------------//1.使用OrderBy方法,用Lambda表达式标识用于对行进行排序的字段var companyNames=addresses.OrderBy(addr=>addr.CompanyName).Select(comp=>comp.CompanyName);//2.使用orderby查询操作符var companyNames=from addr in addresses orderby addr,CompanyName select addr.CompanyName; //--------------用国家对地址数组进行分组筛选(根据字段的值对数据进行分组)----------------------------//1.使用GroupBy方法,用Lambda表达式标识用于对行进行分组的字段var companiesGroupedByCountry=addresses.GroupBy(addrs=>Country);//2.使用group by查询操作符var companiesGroupedByCountry=from addr in addresses group addr by addr.Country; //--------------------关联两个数组查询(联接两个不同集合中的数据)-------------------------------//1.使用Join方法指定连接的集合、联接条件和结果字段var citiesAndCustomers=Customers.Select(c=>new{c.FirstName,c.LastName,c.CompanyName}).Join(addresses,custs=>custs.CompanyName,addrs=>addrs.CompanyName,(custs,addrs)=>new{custs.FirstName,custs.LastName,addrs.Country});//2.使用Join查询操作符var citiesAndCustomers=from a in addresses join c in customers on a.CompanyName equals c.CompanyName select new{c.FirstName,c.LastName,a.Country};
初学LINQ语句
转载于:https://www.cnblogs.com/wangqilong/p/9417496.html
相关文章:

android 开启一个定时线程_ANDROID开发中定时器的3种方法
在android中,经常用到的定时器主要有以下几种实现:一、采用Handler与线程的sleep(long )方法二、采用Handler的postDelayed(Runnable, long) 方法三、采用Handler与timer及TimerTask结合的方法。下面逐一介绍:一、采用Handle与线程的sleep(lo…

083 HBase的完全分布式的搭建与部署,以及多master
一:前提准备 1.设置时间同步 2.清空logs,datas 3.格式化集群 bin/hdfs namenode -format 4.重启集群 sbin/start-dfs.sh sbin/start-yarn.sh 5.删除zookeeper下的data,并新建zkData 6.在zkData下新建myid 7.分发,后,修…

区块链技术指北
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 回顾近现代几次工业革命,人类的发展随着技术的变革而突飞猛进。第一次工业革命革命,以工作机的诞生为开始,以蒸…

cmd查看所有数据库 db2_DB2数据库常用命令集
【IT168 技术】在DB2的开发过程中,贯穿整个开发过程还有很重要的一部分工作就是数据库的维护;对于维护一个庞大信息系统来说是非常必要的;留一份简易的维护手册,以备不时之需;以下收集到的部分维护命令,以飨…

[原创]SparkR针对mysql的数据读写操作实现
网上翻了两天没找到一份有用的文章,自己研究SparkR的官方api文档,总算找到了实现的接口 我是用R语言加载SparkR库的方式,当然也可以直接用SparkR控制台就不用自己加载SparkR的库了 #首先加载sparkR的库 Sys.setenv(TEST_HOME "/root/so…

使用vue2.0 vue-router vuex 模拟ios7操作
其实你也可以,甚至做得更好... 首先看一下效果:用vue2.0实现SPA:模拟ios7操作 与 通讯录实现 github地址是:https://github.com/QRL909109/ios7 如果您觉得可以,麻烦给一个star,支持我一下。 之前接触过Ang…

区块链技术是否会终结开源时代?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 2017年11月18~19日,在上海交大召开的2017中国开源年会,在第二天我们组织了一个“闭门会议”。在这个闭门会议上,…

Direct2D开发:Direct2D 和 GDI 互操作性概述
本主题说明如何结合使用 Direct2D 和 GDI(可能为英文网页)。有两种方法可以结合使用 Direct2D 和 GDI:您可以将 GDI 内容写入与 Direct2D GDI 兼容的呈现器目标,也可以将 Direct2D 内容写入 GDI 设备上下文 (DC) 0X01 将Direct2D内…

vmware虚拟机启动centOs黑屏
如图所示 , 我的VM 启动虚拟机之后就变成了上面的样子,一直不动,ping也ping不好,这个时候 : 1. 要么 内存不够了; 2. 要么 网络协议存在问题了; 本地windows环境在管理员的cmd命令行输入 &…

plc和pc串口通讯接线_让你搞懂PLC串口通讯和通讯接口,这东西估计没几个能说清楚~...
电力作业人员在使用PLC的时候会接触到很多的通讯协议以及通讯接口,最基本的PLC串口通讯和基本的通讯接口你都了解吗?1,什么是串口通讯?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混…

西班牙放大招,利用区块链技术防腐
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 在过去十年来,西班牙爆发了一系列引人注目的腐败丑闻,其中以公共采购最甚。但据TI 2017年的腐败认知指数表明,西…

FreeBSD 8
FreeBSD 8.0的安装过程和7.2区别不大。先在FreeBSD官方网站上下载安装镜像,我一般都下载DVD的ISO,也有人爱好下最小的安装包,然后通过FTP或HTTP方式从网上下载各个程序包。这里就以DVD的ISO为例,下载DVD的ISO后,刻录到…

c潭州课堂25班:Ph201805201 MySQL第二课 (课堂笔记)
mysql> create table tb_2( -> id int, -> name varchar(10) not null -> ); 插入数据 insert into tb_2 value(1,xiaobai); 在非空时,NOT NULL 必须有值, 2,在已有的表中设置一个字段的非空约束 mysql> alter table tb_2 -…

vanpopup 高度_解决VantUI popup 弹窗不弹出或无蒙层的问题
背景####组件PopupTime.vue把vant官网的popup时间选择器抽成组件:popup1show: true 即弹窗显示:title"popupTitle.popupName"v-model"currentDate"type"datetime"cancel"onCancel" confirm"onConfirm" class&quo…

区块链技术入门,都涉及哪些编程语言?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 关于区块链的技能掌握,提到最多的就是Go语言和C、Java,但是很多人产生了歧义,认为只有这几种语言才可以&#x…

centos安装配置nginx,ssl生产和配置教程
【一】nginx安装nginx安装带ssl扩展: cd /usr/local/src #进入用户目录 wget http://nginx.org/download/nginx-1.15.0.tar.gz #下载最新版本nginx tar -zxvf nginx-1.15.0.tar.gz #解压 cd nginx-1.15.0 #进入目录 ./configure --prefix/opt/nginx --with-http_stu…

如何将github上的 lib fork之后通过podfile 改变更新源到自己fork的地址
解决办法: http://stackoverflow.com/questions/20936885/cocoapods-and-github-forks 就是fork完后,提交更改到自己的github上 然后修改podfile的pod导入方式 pod lib,:github>your fork lib.git,:commit >your commitid转载于:https://www.cnblogs.com/code…

证书 vivo_iQOO 5 Pro获泰尔实验室首张流畅性能体验五星证书
近日,中国泰尔实验室向vivo旗下的iQOO 5 Pro(V2025A)型号手机颁发了流畅性能体验五星证书。据中国泰尔实验室官方表示,这是“泰尔证书-流畅性能体验”测评方案推出后的首张证书。“泰尔证书-流畅性能体验”测评方案据悉,“泰尔证书-流畅性能体…

GUI编程之tkinter
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 0. 前言 本文内容为使用Python3的tkinter模块,开发GUI。在阅读本文前,请确保你已经或可能满足以下条件: 电脑中…

js插件 webp_(转)让浏览器支持Webp
转载自:https://segmentfault.com/a/1190000005898538?utm_sourcetuicool&utm_mediumreferral转换工具判断浏览器支持webP方法一:functioncheckWebp() {try{return (document.createElement(canvas).toDataURL(image/webp).indexOf(data:image/webp…

一些大佬博客里的个签
觉得很励志~遇到了就复制下来激励自己。 1.宜静默,宜从容,宜谨严,宜俭约。 //读了两遍感觉心都静下来了。 2.别打扰我,我还能写一套程序。 3.时间并不会因为你的迷茫和迟疑而停留,就在你看这篇文章的同时,…

以太坊搭建私有链
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 1.关于私有链 在以太坊上部署智能合约、发起交易需要花费以太币。而私链和公有链没有关系,不用同步大量的数据,也不用花钱购…

C++回溯法走迷宫
1 #include <iostream> 2 #include <iomanip> 3 #include <cstdlib> 4 using namespace std;5 6 #define MaxSize 100 7 int maze[10][10] //定义一个迷宫,0表示通道,1表示墙 8 {9 { 1,1,1,1,1,1,1,1,1,1 },10 { 1,0,…

js放大镜特效
原理分析:当鼠标在小图片上移动时,通过捕捉鼠标在小图片上的位置,定位大图片的相应位置。(同时,当鼠标在小图片上移动时,右侧大图片往相反的方向移动。) 放大镜特效设计: ①页面元素…

5页面返回上个页面定位_5个步骤,画好页面流程图
对于任何产品设计来说,构建流程都是一个绕不开的环节。其奠定了后续的产品框架,是用户体验的基石。本文将从定义和方法出发,结合实际案例,深入浅出地阐述流程图的作用以及画法。最近在做一个关于阅读笔记的原型,业务流…

EOS智能合约:system系统合约源码分析
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 eosio.system 概览 笔者使用的IDE是VScode,首先来看eosio.system的源码结构。如下图所示。 本文分析的源码来自于eosio.contracts。 …

文字超过省略_从楚篆到楚玺的文字结构
从古文字研究的角度来说,楚玺文字也是楚文字系统中重要的组成部分。古文字发展演变的一般规律,如简化、繁化、异化、分化、类化等在印章上也有反映。在楚系简帛书没有大量出土发现和研究出版前,楚玺研究的文字参照物不多,主要是依…

caffe prototxt分析
测试用prototxt name: "CIFAR10_quick"layer {name: "data" type: "MemoryData" top: "data" top: "label" memory_data_param {batch_size: 1 #样本个数 channels: 3 height: 32 width: 32 }}layer {name: "conv1…

Mysql与Oracle区别
Mysql与Oracle区别 文章分类:数据库 周五去一家公司去面试,那公司经理问了关于Mysql与Oracle的区别问题,以前没有总结,回答也不是很好,只是凭感觉,先总结如下: 1. Oracle是大型数据库而Mysql是中小型数据库…

区块链 + 大数据:EOS存储
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 谈到区块链的存储,我们很容易联想到它的链式存储结构,然而区块链从比特币发展到今日当红的EOS,技术形态已经演化…