C#常用LINQ

在开发时发现别人的代码使用到了LINQ十分便捷且清晰,这里记录一下常用LINQ和对应的使用。参考链接:LINQ 菜鸟教程

使用的学生类和字符串用于测试

public class Student
{public int StudentID;public string StudentName;public int Age;
}Student[] studentArray = { new Student() { StudentID = 1, StudentName = "John", Age = 18 },new Student() { StudentID = 2, StudentName = "Steve",  Age = 21 },new Student() { StudentID = 3, StudentName = "Bill",  Age = 25 },new Student() { StudentID = 4, StudentName = "Ram" , Age = 20 },new Student() { StudentID = 5, StudentName = "Ron" , Age = 31 },new Student() { StudentID = 6, StudentName = "Chris",  Age = 17 },new Student() { StudentID = 7, StudentName = "Rob",Age = 19  },};IList<string> stringList = new List<string>() { "C# Tutorials","VB.NET Tutorials","Learn C++","MVC Tutorials" ,"Java" };

Where过滤

1.使用LINQ查找青少年学生

Students = studentArray.Where(s => s.Age >= 18 && s.Age <= 25).ToList();

2.使用LINQ查找名字为Bill的第一位学生

st1 = studentArray.Where(s => s.StudentName == "Bill").FirstOrDefault();

更加简便的写法:
其中对于 FirstOrDefault 和 First 的区别:FirstOrDefault 找不到返回默认值,First 找不到抛出异常

st1 = studentArray.FirstOrDefault(s => s.StudentName == "Bill");
st1 = studentArray.First(s => s.StudentName == "Bill");

3.使用LINQ查找StudentID为5的学生

st2 = studentArray.FirstOrDefault(s => s.StudentID == 5);

Single 和First 的区别:Single如果查找的元素不唯一会引发异常。Single会迭代所有元素,First满足第一个元素就返回

st2 = studentArray.SingleOrDefault(s => s.StudentID == 5);

SingleOrDefault和Single区别:类似于 FirstOrDefault 和 First 的区别同上,这里不多赘述

st2 = studentArray.Single(s => s.StudentID == 5);

Select投射

1.查询包含 Tutorials 的字符串

strResult = stringList.Where(s => s.Contains("Tutorials")).ToList();

2.为字符串数组加 【】 包含起来

strResult = stringList.Select(s => "【" + s + "】").ToList();

3.筛选 Tutorials 的字符串,添加 【】 输出

strResult = stringList.Where(s => s.Contains("Tutorials")).Select(s => "【" + s + "】").ToList();

OrderBy排序

1.根据年龄进行排序

Students = studentArray.OrderBy(s => s.Age).ToList();

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

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

相关文章

单例模式(线程安全)

1.什么是单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;旨在确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单…

Python 之 __file__ 变量导致打包 exe 后路径输出不一致的问题

现象 做项目的时候&#xff0c;一直使用 os.path.dirname(os.path.abspath(__file__)) 来获取当前目录。然而&#xff0c;最近却遇到了一个路径相关的问题。直接运行 py 文件是正常的&#xff0c;但是打包成 exe 之后&#xff0c;却显示因为路径问题导致程序报错无法继续执行。…

PH热榜 | 2025-04-21

1. Google Whisk 2.0 标语&#xff1a;将图像转换为八秒的动画短片。 介绍&#xff1a;Whisk 是谷歌实验室的一项新创新&#xff0c;现在推出了 Whisk Animate——它可以将你的图片转换成生动的8秒视频&#xff0c;采用了 Veo 2 技术。此功能现已在60多个国家的 Google One A…

AI大模型 —— 国产大模型 —— 华为大模型

有这么一句话&#xff0c;那就是AI大模型分两种&#xff0c;一种是大模型&#xff1b;另一种是华为大模型。 如果从技术角度来分析&#xff0c;华为的技术不论是在软件还是硬件都比国外的大公司差距极大&#xff0c;甚至有些技术评论者认为华为的软硬件技术至少落后2.5代&#…

FPGA 中 XSA、BIT 和 DCP 文件的区别

在 FPGA&#xff08;现场可编程门阵列&#xff09;开发中&#xff0c;XSA、BIT 和 DCP 文件是常见的文件类型&#xff0c;它们在功能、用途、文件内容等方面存在明显区别&#xff0c;以下是详细介绍&#xff1a; 1. XSA 文件 定义与功能 XSA&#xff08;Xilinx Shell Archiv…

MH2103系列coremark1.0跑分数据和优化,及基于arm2d的优化应用

CoreMark 1.0 介绍 CoreMark 是由 EEMBC&#xff08;Embedded Microprocessor Benchmark Consortium&#xff09;组织于 2009 年推出的一款用于衡量嵌入式系统 CPU 或 MCU 性能的标准基准测试工具。它旨在替代陈旧的 Dhrystone 标准&#xff08;Dhrystone 容易受到各种libc不同…

云原生与AI的关系是怎么样的?

云原生与AI的结合正在重塑现代应用的开发与部署模式&#xff0c;两者相辅相成&#xff0c;共同推动技术创新与产业升级。以下是两者的核心概念、结合点及未来趋势的详细解析&#xff1a; 一、云原生与AI的核心概念 云原生&#xff08;Cloud Native&#xff09; • 定义&#…

【CentOs】构建云服务器部署环境

(一) 服务器采购 2 CPU4G 内存40G 系统盘 80G 数据盘 (二) 服务器安全组和端口配置 (三) 磁盘挂载 1 登录 root 2 查看目前磁盘使用情况 df -h 3 查看磁盘挂载情况 识别哪些磁盘没挂载 fdisk -l 4 对未挂载磁盘做分区 fdisk /dev/vdb 输入m&#xff0…

LangChain4j语言模型选型指南:主流模型能力全景对比

LangChain4j语言模型选型指南&#xff1a;主流模型能力全景对比 前言 在大语言模型应用开发中&#xff0c;选择合适的底层模型提供商是架构设计的关键决策。LangChain4j作为Java生态的重要AI框架&#xff0c;其支持的20模型提供商各有独特的优势场景。本文通过功能矩阵深度解…

2025.4.21日学习笔记 JavaScript String、Array、date、math方法的使用

1. String&#xff08;字符串&#xff09; String 对象用于处理和操作文本数据。 length&#xff1a;返回字符串的长度。 const str "Hello"; console.log(str.length); // 输出: 5 charAt(index)&#xff1a;返回指定索引位置的字符。 const str "Hello…

(14)VTK C++开发示例 --- 将点投影到平面上

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 计算一个点在一个平面上的投影。 vtkPlane 是 VTK&#xff08;Visualization Toolkit&#xff09;库中的一个类&…

电子电器架构 ---软件定义汽车的电子/电气(E/E)架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

Android开发中的复制和粘贴

Android 提供了一个强大的基于剪贴板的框架&#xff0c;用于复制和粘贴。它支持简单和复杂的数据类型&#xff0c;包括文本字符串、复杂数据结构、文本和二进制流数据&#xff0c;以及应用资源。简单的文本数据直接存储在剪贴板中&#xff0c;而复杂的数据则存储为引用&#xf…

【STM32单片机】#10.5 串口数据包

主要参考学习资料&#xff1a; B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接&#xff1a;https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装&#xff1a;STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 实验&…

百度暑期实习岗位超3000个,AI相关岗位占比87%,近屿智能携AIGC课程加速人才输出

今年3月&#xff0c;百度重磅发布3000暑期实习岗位&#xff0c;聚焦大模型、机器学习、自动驾驶等AI方向的岗位比例高达87%。此次实习岗位涉及技术研发、产品策划、专业服务、管理支持、政企解决方案等四大类别&#xff0c;覆盖超300个岗位细分方向。值得一提的是&#xff0c;百…

vue3 + element-plus中el-dialog对话框滚动条回到顶部

对话框滚动条回到顶部 1、需要对话框显示后 2、使用 nextTick 等待 Dom 更新完毕 3、通过开发者工具追查到滚动条对应的标签及class“el-overlay-dialog” 4、设置属性 scrollTop 0 或者 执行方法 scrollTo(0, 0) // 对话框显示标识 const dialogVisible ref(false); //…

C++学习之游戏服务器开发十一DOCKER的基本使用

目录 1.多实例部署方案 2.容器的概念 3.docker初识 4.docker仓库 5.docker镜像 6.docker容器 7.docker和虚拟机的区别 8.docker命令解释 9.dockerfile构建镜像 10.离线分发镜像 1.多实例部署方案 redis 命令&#xff08; redis-cli XXXX &#xff09; set key value:…

2025.4.21总结

工作&#xff1a;开了一场关于大模型版本的会议&#xff0c;回归一个问题单&#xff0c;提了两个单&#xff0c;把用例都执行完。如今都四月中旬了&#xff0c;上班年快要结束了&#xff0c;该到了冲刺KPI的时候了。 今日思考&#xff1a;刷到了jack叔叔的视频&#xff0c;讲了…

vite安装及使用

没特殊要求的项目,还是怎么简单怎么来╮(╯▽╰)╭ 一、Vite 基础知识 1. 什么是 Vite? Vite 是一个前端构建工具,专注于开发服务器速度和优化构建过程。特点: 快速冷启动:利用 ES 模块的原生支持,实现快速的开发服务器启动。即时热更新:在开发过程中,修改代码后可以…

ubuntu下gcc/g++安装及不同版本切换

1. 查看当前gcc版本 $ gcc --version# 查看当前系统中已安装版本 $ ls /usr/bin/gcc*2. 安装新版本gcc $ sudo apt-get update# 这里以版本12为依据&#xff08;也可以通过源码方式安装&#xff0c;请自行Google&#xff01;&#xff09; $ sudo apt-get install -y gcc-12 g…