当前位置: 首页 > news >正文

C#范围运算符

C#8.0语法中,范围运算符是一种用于快速截取序列的运算符,其语法为 “start…end”,表示从序列的 “start” 索引处开始,一直截取到"end" 索引处为止(包括 “end” 索引处的元素)。范围运算符主要用于操作数组、字符串和Span 类型的数据序列。

范围运算符有两种形式:

  1. start…end,表示从序列的 “start” 索引处(包括该索引处的元素)开始,一直截取到"end" 索引处为止(包括 “end” 索引处的元素)。

  2. start…,表示从序列的 “start” 索引处(包括该索引处的元素)开始,截取到序列的结尾为止(包括该结尾处的元素)。

范围运算符还可以通过负数索引进行使用,如 -4…-2 表示从倒数第四个元素到倒数第二个元素(包括倒数第二个元素)。

使用范围运算符可以简化代码,提高效率,例如:

int[] arr = { 1, 2, 3, 4, 5 };
int[] subArr = arr[1..4]; //截取 arr 数组中从索引为 1 到 3 的子数组 { 2, 3, 4 }

还可以使用范围运算符来遍历序列的后半部分:

for(int i = arr.Length / 2..^0) //从数组中间索引处开始遍历到结尾
{//...
}

需要注意的是,范围运算符只能用于支持索引的数据类型,且仅限于C#8.0及以上版本。

C#8.0中也可以使用范围运算符(range operator)来截取字符串。范围运算符使用两个点(…)表示,它可以用于指定一个范围,在字符串中截取子串。

例如,假设有一个字符串str,我们要截取它从第3个字符到第5个字符的子串,可以使用以下代码:

string str = "abcdefg";
string subStr = str[2..5]; // 从第3个字符到第5个字符,共3个字符

在上述代码中,str[2…5]表示从第3个字符到第5个字符的子串,因为字符串中的第一个字符的下标是0,所以第3个字符的下标是2。

范围运算符还可以使用负数表示从字符串的末尾开始计数。例如,如果要截取字符串最后三个字符的子串,可以使用以下代码:

string str = "abcdefg";
string subStr = str[^3..^0]; // 从倒数第3个字符到倒数第1个字符,共3个字符

在上述代码中,表示从倒数第3个字符到倒数第1个字符的子串,因为倒数第一个字符的下标是-1,所以倒数第三个字符的下标是-3。

也可以简写为

Console.WriteLine("220613000100"[..^2]);//去掉最后两位
Console.WriteLine("220613000100"[^2..]);//保留最后两位

相关文章:

C#范围运算符

C#8.0语法中,范围运算符是一种用于快速截取序列的运算符,其语法为 “start…end”,表示从序列的 “start” 索引处开始,一直截取到"end" 索引处为止(包括 “end” 索引处的元素)。范围运算符主要…...

云数据库知识学习——云数据库产品、云数据库系统架构

一、云数据库产品 1.1、云数据库厂商概述 云数据库供应商主要分为三类。 ① 传统的数据库厂商,如 Teradata、Oracle、IBM DB2 和 Microsoft SQL Server 等。 ② 涉足数据库市场的云供应商,如 Amazon、Google、Yahoo!、阿里、百度、腾讯…...

C++中引用详解!

前言: 本文旨在讲解C中引用的相关操作,以及引用的一些注意事项!搬好小板凳,干货来了! 引用的概念 何谓引用呢?引用其实很容易理解,比如李华这个同学,他因为很调皮,所以…...

VUE3+TS项目无法找到模块“../version/version.js”的声明文件

问题描述 在导入 ../version/version.js 文件时,提示无法找到模块 解决方法 将version.js改为version.ts可以正常导入 注意,因为version.js是我自己写的模块,我可以直接该没有关系,但是如果是引入的其他的第三方包&#xff0c…...

数据结构-堆的实现及应用(堆排序和TOP-K问题)

数据结构-堆的实现及应用[堆排序和TOP-K问题] 一.堆的基本知识点1.知识点 二.堆的实现1.堆的结构2.向上调整算法与堆的插入2.向下调整算法与堆的删除 三.整体代码四.利用回调函数避免对向上和向下调整算法的修改1.向上调整算法的修改2.向下调整算法的修改3.插入元素和删除元素函…...

Spring 条件注解没生效?咋回事

条件注解相信各位小伙伴都用过,Spring 中的多环境配置 profile 底层就是通过条件注解来实现的,松哥在之前的 Spring 视频中也有和大家详细介绍过条件注解的使用,感兴趣的小伙伴戳这里:Spring源码应该怎么学?。 从 Spr…...

96. 不同的二叉搜索树

class Solution { public:int numTrees(int n) {if (n0) {return 1;}vector<int> dp(n1, 0);dp[0] 1;dp[1] 0;for (int i 1; i < n; i) {for (int j 0; j < i; j) {dp[i] dp[j] * dp[i - 1 - j];}}return dp[n];} };...

Android Jetpack 中Hilt的使用

Hilt 是 Android 的依赖项注入库&#xff0c;可减少在项目中执行手动依赖项注入的样板代码。执行 手动依赖项注入 要求您手动构造每个类及其依赖项&#xff0c;并借助容器重复使用和管理依赖项。 Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期&#xff0c;…...

批量采集的时间管理与优化

在进行大规模数据采集时&#xff0c;如何合理安排和管理爬取任务的时间成为了每个专业程序员需要面对的挑战。本文将分享一些关于批量采集中时间管理和优化方面的实用技巧&#xff0c;帮助你提升爬虫工作效率。 1. 制定明确目标并设置合适频率 首先要明确自己所需获取数据的范…...

uniApp监听左右滑动事件

监听左右滑动事件的步骤 1. 添加需要监听滑动事件的元素 在你的页面中&#xff0c;添加需要监听滑动事件的元素。这可以是一个 view、swiper 或其他组件&#xff0c;取决于你的需求。例如&#xff1a; <template><view class"body" touchstart"touc…...

十八、MySQL添加外键?

1、外键 外键是用来让两张表的数据之间建立联系&#xff0c;从而保证数据的一致性和完整性。 注意&#xff0c;父表被关联的字段类型&#xff0c;必须和子表被关联的字段类型一致。 2、实际操作 &#xff08;1&#xff09;初始化两张表格&#xff1a; 子表&#xff1a; 父…...

图像文件的操作MATLAB基础函数使用

简介 MATLAB中的图像处理工具箱体统了一套全方位的标准算法和图形工具&#xff0c;用于进行图像处理、分析、可视化和算法开发。这里仅仅对常用的基础函数做个使用介绍。 查询图像文件的信息 使用如下函数 imfinfo(filename,fmt) 函数imfinfo返回一个结构体的info&#xff…...

【k8s】Kubernetes版本v1.17.3 kubesphere 3.1.1 默认用户登录失败

1.发帖&#xff1a; Kubernetes版本v1.17.3 kubesphere 3.11 默认用户登录失败 - KubeSphere 开发者社区 2. 问题日志&#xff1a; 2.1问题排查方法 &#xff1a; 用户无法登录 http://192.168.56.100:30880/ 2.2查看用户状态 kubectl get users [rootk8s-node1 ~]# k…...

Mysql加密功能

Mysql加密功能 InnoDB加密功能查询条件问题开启整个数据库加密 InnoDB加密功能 InnoDB是MySQL数据库引擎的一种&#xff0c;它提供了加密存储的功能。具体来说&#xff0c;InnoDB引擎支持以下两种方式的加密存储&#xff1a; 表级加密&#xff1a;InnoDB支持表级加密&#xff…...

redis-win10安装和解决清缓存报错“Error: Protocol error, got “H“ as reply type byte”

win10安装 https://github.com/microsoftarchive/redis/releases 下载最新的zip&#xff0c;解压&#xff0c;把路径加到Path里&#xff0c;每次直接在cmd里 redis-server.exeError: Protocol error, got “H” as reply type byte 这个报错是因为我端口写错了。。无语 D:…...

【视觉检测】电源线圈上的导线弯直与否视觉检测系统软硬件方案

 检测内容 线圈上的导线弯直与否检测系统。  检测要求 检测线圈上的导线有无弯曲&#xff0c;弯曲度由客户自己设定。检测速度5K/8H625PCS/H。  视觉可行性分析 对样品进行了光学实验&#xff0c;并进行图像处理&#xff0c;原则上可以使用机器视觉进行测试测量…...

Java elasticsearch scroll模板实现

一、scroll说明和使用场景 scroll的使用场景&#xff1a;大数据量的检索和操作 scroll顾名思义&#xff0c;就是游标的意思&#xff0c;核心的应用场景就是遍历 elasticsearch中的数据&#xff1b; 通常我们遍历数据采用的是分页&#xff0c;elastcisearch还支持from size的…...

嵌入式基础知识-信息安全与加密

本篇来介绍计算机领域的信息安全以及加密相关基础知识&#xff0c;这些在嵌入式软件开发中也同样会用到。 1 信息安全 1.1 信息安全的基本要素 保密性&#xff1a;确保信息不被泄露给未授权的实体。包括最小授权原则、防暴露、信息加密、物理加密。完整性&#xff1a;保证数…...

TCP的三次握手与四次挥手

首先&#xff0c;源端口号和目标端口号是不可少的&#xff0c;这一点和 UDP 是一样的。如果没有这两个端口号。数据就不知道应该发给哪个应用。 接下来是包的序号。为什么要给包编号呢&#xff1f;当然是为了解决乱序的问题。不编好号怎么确认哪个应该先来&#xff0c;哪个应该…...

【Face Swapping综述】Quick Overview of Face Swap Deep Fakes

【Face Swapping综述】Quick Overview of Face Swap Deep Fakes 0、前言Abstract1. Introduction2. Face Swapping Process2.1. Preprocessing2.2. Identity Extraction2.3. Attributes Extractor2.4. Generator2.5. Postprocessing2.6. Evaluation Methods3. Challenges4. Con…...

从‘换硬币’到算法优化:聊聊暴力枚举的局限性与时间复杂度的估算

从暴力枚举到算法优化&#xff1a;硬币问题的计算思维进阶 当我们第一次面对"换硬币"这类问题时&#xff0c;最直观的解决方案往往是暴力枚举——通过多重循环尝试所有可能的组合。这种方法简单直接&#xff0c;对于初学者来说易于理解和实现。然而&#xff0c;随着问…...

Diablo Edit2:5分钟打造完美暗黑破坏神2角色的终极指南

Diablo Edit2&#xff1a;5分钟打造完美暗黑破坏神2角色的终极指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 还在为暗黑破坏神2中漫长的练级过程而烦恼&#xff1f;想要测试各种职业build却…...

如何高效获取金融数据:Python通达信接口的完整指南

如何高效获取金融数据&#xff1a;Python通达信接口的完整指南 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在金融数据分析和量化交易领域&#xff0c;获取准确、及时且成本可控的市场数据一直…...

从AD9288到STM32H750:手把手拆解开源示波器osc_fun的硬件架构与选型思路

从AD9288到STM32H750&#xff1a;开源示波器osc_fun的硬件架构深度解析与工程实践 在开源硬件领域&#xff0c;osc_fun示波器项目以其精巧的架构设计和出色的性价比&#xff0c;成为众多硬件开发者研究的热点。这个看似简单的示波器背后&#xff0c;隐藏着一系列精妙的硬件选型…...

软件功能设计核心原则与方法论

软件功能设计需将用户需求转化为可落地的功能模块&#xff0c;遵循四大核心原则&#xff0c;确保规范性、实用性和可扩展性。以下表格总结核心原则及示例&#xff1a;原则核心要点示例&#xff08;EMS场景&#xff09;高内聚、低耦合模块职责单一&#xff0c;边界清晰&#xff…...

5个高效处理PDF的Windows命令行工具:Poppler完整解决方案

5个高效处理PDF的Windows命令行工具&#xff1a;Poppler完整解决方案 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 在Windows平台上处理PDF文档时…...

多源视频流时空配准,搭建跨摄像机一体化轨迹推演计算平台

多源视频流时空配准&#xff0c;搭建跨摄像机一体化轨迹推演计算平台在数字孪生与视频孪生全域空间智能感知的建设进程中&#xff0c;各类管控场景普遍部署多品牌、多焦距、多布设姿态的异构摄像设备&#xff0c;衍生出大量编码格式各异、传输时延参差、时钟相位错位的多源异步…...

别再裸奔了!手把手教你给Nacos 2.x加上用户密码和权限隔离(附Spring Boot配置)

Nacos 2.x安全加固实战&#xff1a;从零构建企业级权限体系 在微服务架构快速迭代的初期&#xff0c;许多团队为了开发效率往往选择"裸奔"模式运行Nacos——不开启任何鉴权机制。这种看似便捷的做法实则暗藏巨大风险&#xff1a;配置信息泄露、服务被恶意注销、敏感数…...

MQTT-Client-Framework测试策略:单元测试、集成测试与多Broker兼容性

MQTT-Client-Framework测试策略&#xff1a;单元测试、集成测试与多Broker兼容性 【免费下载链接】MQTT-Client-Framework iOS, macOS, tvOS native ObjectiveC MQTT Client Framework 项目地址: https://gitcode.com/gh_mirrors/mq/MQTT-Client-Framework MQTT-Client-…...

在Taotoken平台试用不同模型后对生成效果与速度的直观感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Taotoken平台试用不同模型后对生成效果与速度的直观感受 作为一名开发者&#xff0c;在构建应用时&#xff0c;选择合适的模型往…...