C# LINQ笔记

C# LINQ笔记

from子句

  1. foreach语句命令式指定了按顺序一个个访问集合中的项。from子句只是声明式地规定集合中的每个项都要访问,并没有指定顺序。
  2. foreach在遇到代码时就执行其主体。from子句什么也不执行,只有在遇到访问查询变量的语句时才会执行。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{public static void Main(string[] args){int[] ints = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };var nums = from n in intswhere n > 7select n;foreach (var n in nums){Console.WriteLine(n);}Console.ReadKey();}}
}

运行结果

在这里插入图片描述

join子句

使用联结来结合两个或更多集合中的数据。
联结对象接受两个集合,然后创建一个临时的对象集合,每一个对象包含原始集合对象中的所有字段。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;namespace ConsoleApp2
{class student{public int id;public string name;}class courseStudent{public string course;public int id;}class Test{static student[] students = new student[]{new student{ id = 1, name = "熊1" },new student{ id = 2, name = "熊2" },};static courseStudent[] courseStudents = new courseStudent[]{new courseStudent{ id = 1, course = "体育" },new courseStudent{ id = 2, course = "历史" },new courseStudent{ id = 3, course = "语文" },};public static void Main(string[] args){var names = from s in studentsjoin c in courseStudents on s.id equals c.idwhere c.course == "历史"select s.name;foreach (var item in names){Console.WriteLine(item);}Console.ReadKey();}}
}

运行结果

因为选修“历史”课程的是熊2,所以输出的是熊2:
在这里插入图片描述

orderby

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;namespace ConsoleApp2
{class student{public int id;public string name;}class courseStudent{public string course;public int id;}class Test{static student[] students = new student[]{new student{ id = 1, name = "熊1" },new student{ id = 2, name = "熊2" },};static courseStudent[] courseStudents = new courseStudent[]{new courseStudent{ id = 1, course = "体育" },new courseStudent{ id = 2, course = "历史" },new courseStudent{ id = 3, course = "语文" },};public static void Main(string[] args){//匿名类型的对象数组var students2 = new[]{new { Name = "student1", Age = 1, Course = "体育" },new { Name = "student2", Age = 2, Course = "美术" },new { Name = "student3", Age = 3, Course = "历史" },new { Name = "student4", Age = 4, Course = "历史" },new { Name = "student5", Age = 5, Course = "历史" },new { Name = "student6", Age = 1, Course = "历史" },};var stu = from s in students2orderby s.Ageselect s;foreach (var student2 in stu)Console.WriteLine("{0},{1},{2}", student2.Name, student2.Age, student2.Course);Console.ReadKey();}}
}

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/568715.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LED和数码管及按键

目录 LED LED灯亮的原理图 LED灯光闪烁 电路设计 keil文件 LED流水灯的实现 keil文件 数码管 显示的基本原理 LED数码管的显示方式 静态显示方式 动态显示方式 具体案例 数码管静态显示 电路图 keil文件 数码管动态显示 电路图 keil文件 74LS138译码器 译…

如何快速进行城市内涝模拟?HTWATER软件

原文链接:如何快速进行城市内涝模拟?HTWATER软件https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247599079&idx2&sndc6f3da8b17c5587cf5b7766e7019729&chksmfa820200cdf58b16658983ecfbf2b369bff39813302942d6f7eb7b71428c68da71…

Vue+OpenLayers7入门到实战:OpenLayers图形绘制功能,OpenLayers实现在地图上绘制线段、圆形和多边形

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上实现图形绘制功能,OpenLayers地图实现在地图上绘制线段、圆形和多边形等基本图形。 注意:本章需要用到Element-UI组件,可能需要额外安装依赖,这里跳过不详述,具体…

电脑如何一键修复所有dll缺失,几种修复dll文件丢失的方法

修复所有DLL(动态链接库)文件缺失的问题通常不可能通过单一的"一键修复"按钮来实现,因为DLL文件缺失可能由各种不同的原因导致,比如应用程序安装不正确、病毒感染、或系统文件损坏等。 使用内置的系统文件检查器&#x…

网络原理(7)——以太网数据帧和DNS协议(数据链路层和应用层)

目录 一、以太网数据帧(数据链路层) 二、DNS协议(域名解析系统,应用层协议) 一、以太网数据帧(数据链路层) 以太网横跨了数据链路层和物理层,这里只做简单介绍,因为普通程序员用不到这一块&am…

Rust基本类型

数值类型 整数类型 无符号整数只能取正数和0,有符号整数可以取正数负数和0。isize和usize类型取决于程序运行的计算机CPU类型,若CPU是32位的,则这两个类型是32位的,若CPU是64位的,则它们是64位的。rust整型 默认使用…

基于Spring Boot的云上水果超市的设计与实现

摘 要 伴随着我国社会的发展,人民生活质量日益提高。于是对云上水果超市进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套云上水果超市,帮助商家进行…

酒店管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址:https://download.csdn.net/download/qq_50954361/89036287 更多系统资源库…

拓展AI边界:去中心化人工智能的应用场景和主要项目盘点

随着区块链技术的发展和普及,去中心化人工智能(AI)逐渐成为技术领域的焦点之一。区块链的去中心化特性为AI技术的应用提供了新的可能性,使得数据共享、模型训练和应用部署更加安全、透明和可靠。本文将探索去中心化AI的应用场景&a…

达梦数据库自动备份(全库)+还原(全库) 控制台

一 前提 1.安装达梦数据库DB8(请参照以前文章) 我的数据库安装目录是 /app/dmDB8 2.已创建实例 (请参照上一篇文章) 二 准备测试数据 三 自动备份步骤 1.开启归档模式 开启DM管理工具管理控制台 弹不出来工具的 输入命令 xhost 第一步 将服务器转换为配置状态 右键-&g…

2.4 如何运行Python程序

如何运行Python程序? Python是一种解释型的脚本编程语言,这样的编程语言一般支持两种代码运行方式: 1) 交互式编程 在命令行窗口中直接输入代码,按下回车键就可以运行代码,并立即看到输出结果;执行完一行…

【网络爬虫】(1) 网络请求,urllib库介绍

各位同学好,今天开始和各位分享一下python网络爬虫技巧,从基本的函数开始,到项目实战。那我们开始吧。 1. 基本概念 这里简单介绍一下后续学习中需要掌握的概念。 (1)http 和 https 协议。http是超文本传输&#xf…