C# 8中的范围类型(Range Type)

640?wx_fmt=jpeg

C# 8.0中加入了一个新的范围类型(Range Type)。

这里我们首先展示一些代码,并一步一步为代码添加一些不同的东西, 为大家展示一下范围类型的功能和用法。

我们最原始的代码如下:

640?wx_fmt=png

这里我们显示的定义了我们查询数组的索引1-3, 并输出他们的值。毫无疑问,当我们运行程序之后,代码结果如下:

640?wx_fmt=png


但是,假设我们不想使用for循环,而是想要使用这个名为“range”的新特性, 我们可以将代码重写为:

640?wx_fmt=png

现在我们来运行程序。

640?wx_fmt=png


结果比我们预想的少了一个。这是我们使用范围类型遇到的第一个问题。

范围的起始索引是包含的,范围的结束索引是排除的

如果我们修改一下我们的代码:

640?wx_fmt=png


我们就会获得预想的结果。

范围缩写

使用范围来定义起始和结束索引非常的好用。但是如何表示从一个索引开始直到数组的最后一个对象呢?

从一个索引开始到数组的最后一个对象

640?wx_fmt=png


输出结果:

640?wx_fmt=png


从数组的第一个对象到指定索引

640?wx_fmt=png


输出结果:

Item1
Item2 Item3

整个数组

640?wx_fmt=png


输出结果:

Item1
Item2 Item3 Item4 Item5

从数组的某个索引开始一直到距数组尾部某个索引

C# 8.0提供了^操作符,^操作符表示从数组末尾计算索引。

foreach (var item in myArray[1..^1])
{Console.WriteLine(item);
}

输出结果:

Item2

Item3 Item4

范围类型

当我们编写1..4的时候,看起来就好像我们在使用新的语法,实际上这只是个语法糖,实际上它初始化一个Range类对象,就好像我们可以使用{“1”, “2”, “3”}就可以创建一个数组一样。

640?wx_fmt=png


替代Substring方法

使用范围类型的另一个好处就是你可以使用它替换String.Substring方法, 写起来更加简单。

Console.WriteLine("123456789"[1..4]);

原文地址:https://www.cnblogs.com/lwqlun/p/10095821.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg

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

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

相关文章

bzoj#4423-[AMPPZ2013]Bytehattan【并查集】

正题 题目链接:https://darkbzoj.tk/problem/4423 题目大意 给出一个n∗nn*nn∗n的网格图,然后四联通的点之间连接。每次删掉一条边求这条边的两个点是否连通。强制在线。 1≤n≤1500,1≤m≤2n(n−1)1\leq n\leq 1500,1\leq m\leq 2n(n-1)1≤n≤1500,1≤m≤2n(n−…

选数游戏(ybtoj-二叉堆)

文章目录题目描述解析代码thanks for reading!题目描述 解析 一道很考验代码能力与思维的题 (我不是在为自己的菜找理由) 首先由于可以每一列都有类似于环的性质 所以我们可以忽略点的出入的纵坐标的位置,只考虑每列选几个 首先&…

CF741C Arpa’s overnight party and Mehrdad’s si

题目描述: 有n对情侣(2n个人)围成一圈坐在桌子边上,每个人占据一个位子,要求情侣不能吃同一 种食物,并且桌子上相邻的三个人的食物必须有两个人是不同的,只有两种食物(1或者是2&…

开源库支付库Magicodes.Pay发布

Magicodes.Pay,是心莱科技团队提供的统一支付库,相关库均使用.NET标准库编写,支持.NET Framework以及.NET Core。目前支持以下支付方式和功能:支付宝APP支付支付宝Wap支付支付宝国际支付 支持分账微信小程序支付微信APP支付统一支…

火车载客(ybtoj-二叉堆)

文章目录题目描述解析我的思路代码题解思路题目描述 解析 我的思路 其实就是线段覆盖的一个变体 贪心的想: 把游客按右端点升序排序 后面的证明就和线段覆盖一样了 如果有两个游客冲突 我们应该选右端点靠右的 因为这样对以后继续在右边出现的游客来说肯定不会更差…

CF835E-The penguin‘s game【交互】

正题 题目链接:https://www.luogu.com.cn/problem/CF835E 题目大意 长度为nnn的序列中有两个yyy其他都是xxx,给出n,x,yn,x,yn,x,y。你每次可以询问一个下标集合的数字异或和,要求在191919次以内找到这两个yyy的位置。 1≤n≤1000,1≤x,y≤109,x≠y1\le…

2021 CCPC E. 被遗忘的计划(循环卷积+快速幂)

E. 被遗忘的计划 别人的简洁写法 #include<bits/stdc.h>using namespace std; using lllong long; const ll INF0x3f3f3f3f3f3f3f3fll; const ll mod1e97; using vlvector<ll>; vl operator *(vl a,vl b) {vl v(a.size(),-INF);for(int i0;i<a.size();i)for(i…

NetCore基于EasyNetQ的高级API使用RabbitMq

一、消息队列消息队列作为分布式系统中的重要组件&#xff0c;常用的有MSMQ&#xff0c;RabbitMq&#xff0c;Kafa&#xff0c;ActiveMQ&#xff0c;RocketMQ。至于各种消息队列的优缺点比较&#xff0c;在这里就不做扩展了&#xff0c;网上资源很多。更多内容可参考 消息队列及…

bzoj#4722-由乃【倍增,抽屉原理,bitset】

正题 题目链接:https://darkbzoj.tk/problem/4722 题目大意 给出一个长度为nnn的序列值域为[0,v)[0,v)[0,v)&#xff0c;要求支持操作 询问一个区间能否找到两个没有交的非空下标集合使得这些位置的和加上集合的大小相等。区间立方然后取模vvv。 1≤n≤105,1≤v≤10001\leq …

二分图匹配(二)

文章目录例题&#xff1a;NC20483 [ZJOI2009]假期的宿舍题目描述&#xff1a;题解&#xff1a;NC51316 Going Home题目描述&#xff1a;题解&#xff1a;NC107638 poj3041 Asteroids题目描述&#xff1a;题解&#xff1a;NC20472 [ZJOI2007]矩阵游戏题目描述&#xff1a;题解&a…

质数和分解(动态规划)

文章目录题目描述解析记忆化搜索代码无限背包代码thanks for reading&#xff01;题目描述 解析 很好的题 记忆化搜索 我一开始的思路就是记忆化搜索 为了不重复&#xff0c;搜索的时候规定拆出来一个数A后一会不能再拆比A更小的了 这样就不难写了 &#xff08;忽略我n^2的素…

Graph Theory Class(Min25求1~n质数和)

Graph Theory Class 原理不会板子抄的。 // n^0.75/log 求1~n的质数和 #include <bits/stdc.h> #define ll long long using namespace std; const int N 10000010;ll n,mod; int prime[N],id1[N],id2[N],vis[N],cnt,m; ll g[N],s[N],a[N],T; int ID(ll x){return x<…

【.NET Core项目实战-统一认证平台】第十章 授权篇-客户端授权

上篇文章介绍了如何使用Dapper持久化IdentityServer4&#xff08;以下简称ids4&#xff09;的信息&#xff0c;并实现了sqlserver和mysql两种方式存储&#xff0c;本篇将介绍如何使用ids4进行客户端授权。.netcore项目实战交流群&#xff08;637326624&#xff09;&#xff0c;…

内存管理(ybtoj-二叉堆)

文章目录题目描述解析代码题目描述 解析 这题感觉做的不错 不难看出&#xff0c;要维护一个空闲的优先队列&#xff0c;在每次申请时弹出编号最小的 但是对判断当前哪些被访问的内存重新进入空闲状态是一个难题 最简单的办法是存起来每次扫一遍判断 但这样在极端数据时会TLE&…

P4233-射命丸文的笔记【NTT,多项式求逆】

正题 题目链接:https://www.luogu.com.cn/problem/P4233 题目大意 随机选择一条有哈密顿回路的nnn个点的竞赛图&#xff0c;求选出图的哈密顿回路的期望个数。 对于每个n∈[1,N]n\in[1,N]n∈[1,N]求答案。 1≤N≤1051\leq N\leq 10^51≤N≤105 解题思路 竟然自己推出来了泪…

HDU 5008 Boring String Problem ( 后缀数组求本质不同第k大子串)

Boring String Problem Zeronera题解 预处理sum数组记录不同字符串的个数&#xff0c;即sum[i] n- sa[i] 1 -height[i] sum[i-1] (n为原串长度) 对于每个k 若k > sum[n] 则输出0 0 &#xff0c;即k大于不同子串的总数 否则&#xff0c;二分sum数组找到第k小子串所在的…

HAPPY_TOGETHER_WEEK15_ENJOY

文章目录7-1 6翻了7-2 幸运彩票7-3 点赞7-4 猜数字7-5 出租7-6 A-B7-7 连续因子7-8 天梯赛座位分配7-9 大笨钟7-10 敲笨钟7-11 整除光棍7-1 6翻了 #include<iostream> #include<string> using namespace std; int main() {string str;int s;int count 0;getline(…

[翻译]初试C# 8.0

原文地址: https://blogs.msdn.microsoft.com/dotnet/2018/12/05/take-c-8-0-for-a-spin/初试C# 8.0昨天我们宣布了Visual Studio 2019的第一个预览版&#xff08;使用Visual Studio 2019提高每个开发人员的工作效率&#xff09;和.NET Core 3.0&#xff08;宣布.NET Core 3预览…

上帝造题的七分钟(ybtoj-树状数组)

文章目录题目描述解析代码thanks for reading&#xff01;题目描述 解析 差点活活恶心死 搬砖题 &#xff08;其实细节没有那么多&#xff0c;还是代码能力太差&#xff09; 利用矩阵的二维差分 加上树状数组搞一搞 就完事了&#xff08;我实在不想再写了 &#xff09; 洛谷…

ACM模板合集

目录数据结构STL以及基础数据结构并查集线段树树状数组平衡树树套树可并堆\sqrt{}​根号数据结构LCT字符串字符串匹配字符串其他数学数论线性代数组合数学网络流最大流最小割费用流图搜索最短路负环最短路建图最小生成树连通性相关欧拉路径二分图树上问题其他离线分治算法随机化…