当前位置: 首页 > 编程日记 > 正文

初学LINQ语句

//有两个数组,客户和地址,他们之间通过公司名关联: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};

转载于:https://www.cnblogs.com/wangqilong/p/9417496.html

相关文章:

android 开启一个定时线程_ANDROID开发中定时器的3种方法

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

083 HBase的完全分布式的搭建与部署,以及多master

一&#xff1a;前提准备 1.设置时间同步 2.清空logs&#xff0c;datas 3.格式化集群 bin/hdfs namenode -format 4.重启集群 sbin/start-dfs.sh sbin/start-yarn.sh 5.删除zookeeper下的data&#xff0c;并新建zkData 6.在zkData下新建myid 7.分发&#xff0c;后&#xff0c;修…

区块链技术指北

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

cmd查看所有数据库 db2_DB2数据库常用命令集

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

[原创]SparkR针对mysql的数据读写操作实现

网上翻了两天没找到一份有用的文章&#xff0c;自己研究SparkR的官方api文档&#xff0c;总算找到了实现的接口 我是用R语言加载SparkR库的方式&#xff0c;当然也可以直接用SparkR控制台就不用自己加载SparkR的库了 #首先加载sparkR的库 Sys.setenv(TEST_HOME "/root/so…

使用vue2.0 vue-router vuex 模拟ios7操作

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

区块链技术是否会终结开源时代?

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

Direct2D开发:Direct2D 和 GDI 互操作性概述

本主题说明如何结合使用 Direct2D 和 GDI&#xff08;可能为英文网页&#xff09;。有两种方法可以结合使用 Direct2D 和 GDI&#xff1a;您可以将 GDI 内容写入与 Direct2D GDI 兼容的呈现器目标&#xff0c;也可以将 Direct2D 内容写入 GDI 设备上下文 (DC) 0X01 将Direct2D内…

vmware虚拟机启动centOs黑屏

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

plc和pc串口通讯接线_让你搞懂PLC串口通讯和通讯接口,这东西估计没几个能说清楚~...

电力作业人员在使用PLC的时候会接触到很多的通讯协议以及通讯接口&#xff0c;最基本的PLC串口通讯和基本的通讯接口你都了解吗&#xff1f;1&#xff0c;什么是串口通讯&#xff1f;串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混…

西班牙放大招,利用区块链技术防腐

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

FreeBSD 8

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

c潭州课堂25班:Ph201805201 MySQL第二课 (课堂笔记)

mysql> create table tb_2( -> id int, -> name varchar(10) not null -> ); 插入数据 insert into tb_2 value(1,xiaobai); 在非空时&#xff0c;NOT NULL 必须有值&#xff0c; 2&#xff0c;在已有的表中设置一个字段的非空约束 mysql> alter table tb_2 -…

vanpopup 高度_解决VantUI popup 弹窗不弹出或无蒙层的问题

背景####组件PopupTime.vue把vant官网的popup时间选择器抽成组件&#xff1a;popup1show: true 即弹窗显示:title"popupTitle.popupName"v-model"currentDate"type"datetime"cancel"onCancel" confirm"onConfirm" class&quo…

区块链技术入门,都涉及哪些编程语言?

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

centos安装配置nginx,ssl生产和配置教程

【一】nginx安装nginx安装带ssl扩展&#xff1a; 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完后&#xff0c;提交更改到自己的github上 然后修改podfile的pod导入方式 pod lib,:github>your fork lib.git,:commit >your commitid转载于:https://www.cnblogs.com/code…

证书 vivo_iQOO 5 Pro获泰尔实验室首张流畅性能体验五星证书

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

GUI编程之tkinter

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

js插件 webp_(转)让浏览器支持Webp

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

一些大佬博客里的个签

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

以太坊搭建私有链

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

C++回溯法走迷宫

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

js放大镜特效

原理分析&#xff1a;当鼠标在小图片上移动时&#xff0c;通过捕捉鼠标在小图片上的位置&#xff0c;定位大图片的相应位置。&#xff08;同时&#xff0c;当鼠标在小图片上移动时&#xff0c;右侧大图片往相反的方向移动。&#xff09; 放大镜特效设计&#xff1a; ①页面元素…

5页面返回上个页面定位_5个步骤,画好页面流程图

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

EOS智能合约:system系统合约源码分析

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

文字超过省略_从楚篆到楚玺的文字结构

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

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

区块链 + 大数据:EOS存储

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