C#中切片语法糖的使用

例子

首先我们看这样一个例子,有这样一个数组

string [] lst = new string[] { "1", "2", "3", "4", "5", "6", "7" };

我们怎么获取它的最后一个值, 传统方法是这样写的,

string str = lst[lst.Length-1];

那切片语法糖怎么写呢?

string str = lst[^1];

如果这样写,那这两行代码其实没什么区别,没有体现出切片语法糖的优势。

那如果我们提取index=1,2,3的数据呢, 传统做法是这样的

var temp = new string【】 { lst[1], lst[2], lst[3] };

或者对linq比较熟悉的同学会这样写

var temp = lst.Skip(1).Take(3).ToArray();

在这里我还是讲一下skip和take是什么意思

•Skip是跳过第几个元素之后,开始取得下标值的内容•Take 是获取几个元素的值,

但是如果我们切片操作就太简单了

var temp = lst[1..3];

我们跑一下代码,咦,怎么只获取到两个,我们看一下官方的定义,

960b3fa40b3e780d92947763e231eb5d.png

End 获取一个表示范围的不包含结束索引的 Index。

这个是什么意思呢,那对高中数学集合还比较熟悉的小伙伴应该知道,这里的1..3其实就是我们集合中的1到3左闭右开, 数学中是这样写的[1,3), 那我们要获取前三个元素,就应该写成[1,4)(1到4左闭右开),代码改成

var temp = lst[1..4];

通过这两个例子大家应该学会了c#中的切片语法糖吧,

如果大家喜欢我的文章,还麻烦给个关注并点个赞, 希望net生态圈越来越好!

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

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

相关文章

JavaScript 语言基础知识点总结(思维导图)

1.JavaScript数组 2.JavaScript 函数基础 3.Javascript 运算符 4.JavaScript 流程控制 5.JavaScript 正则表达式 6.JavaScript 变量 7.JavaScript 字符串函数 8.DOM 基本操作 制作工具:Mindjet MindManager 文章摘自:http://m.oschina.net/blog/175426转…

linux之一些比较新但是常用的命令(expr ag tree cloc stat tmux axel)

1 expr命令 介绍:这个命令用来匹配正则表达式,这个命令linux系统自带,不信你自己试下 使用:expr 正则表达式 输出结果 expr http:\/\/www\.baidu\.com http//www.baidu.com 用了这个命令,我们就不需要在网上去搞在线正则表达式匹配 2 tree命令 这个命令需要安装 sudo…

illegal multibyte sequence python3

错误信息如下: 1 page_data m.decode(gbk) 2 UnicodeDecodeError: gbk codec cant decode byte 0xa7 in position 3868: illegal multibyte sequence 解决办法: 1 page_data m.decode(gbk, ignore) 因为decode的函数原型是decode([encoding], [er…

java ssh 和mvc_[转]JAVA三大框架SSH和MVC

Java—SSH(MVC)JAVA三大框架的各自作用hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是Model;struts提供的丰富标签是用于显示层View;同时struts也充…

Android Studio开发基础之Context用法说明

1、Context说明 Context是一个用于访问全局信息的接口,如应用程序的资源(如图片,字符串等),一些常用的组件继承自Context,如Activity和Service等等。 如利用Java代码创建一个textView,textView的第一种setText()方法直接传入一个字符串,第二种setText()方法传入…

基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九)

作者信息 作者: 彭东林 邮箱:pengdonglin137163.com QQ:405728433 平台简介 开发板:tiny4412ADK S700 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的…

【C语言简单说】八:分支结构之if...else if()...else...(3)

既然前面几种情况大家都了解了话&#xff0c;这一节的话我就不举例子了。。。 直接上代码&#xff1a; #include<stdio.h> #include<stdlib.h> int main() {int a1;if(a1){printf("a的值等于1\n");}else if(a2){printf("a的值等于2\n"); …

最通俗易懂的依赖注入与控制反转

这是一个关于 ASP.NET 6 依赖注入的系列文章。在这个系列中&#xff0c;我们将了解到什么是依赖注入、控制反转&#xff0c;它能够做什么&#xff0c;以及我们为什么要使用它。之后&#xff0c;我们会进一步了解 ASP.NET 6 依赖注入的生命周期、服务容器等重要概念。最后&#…

word公式编辑器_论文查重算公式吗 公式怎样避免查重?

论文查重算公式吗 公式怎样避免查重?每一个毕业生想要毕业都要经过论文查重这一关&#xff0c;仅有通过了论文查重&#xff0c;才可以进入答辩。在论文检测的情况下&#xff0c;不少同学论文中一定会应用大批量的计算公式&#xff0c;且计算公式全部都是固定不动的&#xff0c…

java string 数据结构_数据结构---Java---String、StringBuilder、StringBuffer

1、概述1.1  String&#xff1a;不可变字符串public final class String implements java.io.Serializable, Comparable, CharSequence {//final的字符数组private final char value[];}1.2  StringBuilder&#xff1a;可改变的字符串&#xff0c;线程不安全public final c…

adb logcat 查看日志

使用 logcat 命令 查看和跟踪系统日志缓冲区的命令logcat的一般用法是&#xff1a; [adb] logcat [<option>] ... [<filter-spec>] ... 下文介绍过滤器和命令选项&#xff0c;详细内容可参见Listing of logcat Command Options。 可以在开发机中通过远程shell的方式…

小程序 - 学习笔记

一、小程序文档笔记 默认开发目录 开发目录解析 1.  app.js、app.json、app.wxss 这三个文件必须有不能删掉。 一个小程序主体部分由这三个文件组成&#xff0c;而且必须放在项目的根目录 js后缀的是脚本文件&#xff0c;调用小程序框架提供的 API—— API 文档json后缀的文件…

Android Studio开发基础之Service

1、Service的使用 Activity可以呈现一个用户界面,但是Service确实运行在后台,新建一个Myservice.java,会在AndroidManifest中自动配置<Service>标签。 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://…

linux之sudo apt-get install **** 是到哪里下载软件以及下载到哪里去了

1 问题 我们平时在linux系统上更新软件,一般都是执行 sudo apt-get install 软件名 为什么这个命令就能下载软件了呢? 下载的软件放到哪里去了呢? 2 sudo apt-get install是到哪里下载软件 apt-get,是一条linux命令,适用于deb包管理式的操作系统 比如我的ubuntu上面有…

【C语言简单说】九:输入

到了下午了&#xff0c;上着班发现没啥事情做… 又来码博客了 ↖(▔&#xff3e;▔)↗ 这一小节我们来说说输入吧。突然想总结以下if语句的&#xff0c;结果发现&#xff0c;还有一个输入没说&#xff1b;之前是不是说过了输出&#xff1f;就是printf这个&#xff0c;现在还有…

java 优秀源码_想要快速进阶Java架构师?这份超强(长)学习计划单 请签收!...

优秀工程师的成长之路就是一条不断打怪升级之路的“修仙之路”&#xff01;而Java程序员一向比别人更难&#xff0c;如果说大家都在修仙的话&#xff0c;java程序员简直神似“剑修”&#xff0c;入行枯燥精通难&#xff0c;要想变得强大&#xff0c;需要能力也需要运气&#xf…

Web Api如何传递POST请求

这里记录一次Web Api传递post请求的例子&#xff0c;由于使用了默认工程的例子&#xff0c;方法名的参数值标记头为FromBody的形式&#xff0c;如下图所示的调用&#xff1a; 调用方式&#xff1a; 那么如果要两个以上的参数如何去实现&#xff0c;这种方式是不行的&#xff0c…

java 不能反序列化_不能将“Java.Lang.Studio”实例反序列化到StaskObl对象令牌中

我收到下面的错误消息,有人能帮助或建议如何最好地调试它吗?无法反序列化的实例java.lang.String超出起始值的对象[来源:(pushbackinputstream)处的令牌;行:1,列:37610](通过参考链:CopyToList[[产品] ] -gt;java. U.L.AyayList[ 23 ] -&G.M.Mult.产品[“价格”] -& c…

Android Studio开发基础之启动Service,并通过从Activity向Service传递数据

本实例演示启动Service&#xff0c;并通过从Activity向Service传递数据&#xff0c;新建一个Service&#xff0c;并敲如下代码&#xff1a; package com.example.lhb.startservice;import android.app.Service; import android.content.Intent; import android.os.IBinder; imp…

AOT和单文件发布对程序性能的影响

前言这里先和大家介绍一下.NET一些发布的历史&#xff0c;以前的.NET框架原生并不支持最终编译结果的单文件发布&#xff08;需要依赖第三方工具&#xff09;&#xff0c;我这里新建了一个简单的ASP.NET Core项目&#xff0c;发布以后的目录就会像下图这样&#xff0c;里面包含…