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生态圈越来越好!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值