C#8 中有趣的的索引和范围特性

C#8 中有趣的的索引和范围特性

        var array = new int[]{3,4,6,4,52,63,5,545,4,345,5,52,6};
        Debug.Log(array[^5]);
        Debug.Log(array[5..8].Length);

使用

这些索引和范围特性可以让您更方便地访问和操作数组、列表或字符串中的元素。它们不仅可以提高代码的可读性,还可以减少一些常见的边界检查和计算工作。

  1. 倒数第一个元素 [^1]:
  • 这个语法可以用来访问数组、列表或字符串的倒数第一个元素。
  • 例如, myArray[^1] 可以获取数组 myArray 的最后一个元素。
  1. 范围 [3..5]:

    • 这个语法可以用来访问数组、列表或字符串的一个子集。
    • [3..5] 表示从第4个元素(索引为3)开始,到第6个元素(索引为5)结束(不包括)。
  2. 其他特性:

    • [..]: 不指定开始或结束索引,可以获取整个数组/列表/字符串。
    • [^5..]: 获取从倒数第5个元素开始到结尾的所有元素。
    • [..5]: 获取从开头到第6个元素(索引为5)的所有元素。
    • [2..]: 获取从第3个元素(索引为2)开始到结尾的所有元素。

Linq实现

  1. 倒数第一个元素 [^1]:

    • LINQ 中可以使用 Last() 方法来获取集合的最后一个元素:

      var lastElement = myArray.Last();
      
  2. 范围 [3..5]:

    • LINQ 中可以使用 Skip(3).Take(2) 来获取从第4个元素开始的2个元素:

      var subArray = myArray.Skip(3).Take(2);
      
  3. 其他特性:

    • [..]: 获取整个集合可以使用 ToArray()ToList() 方法:

      var fullArray = myArray.ToArray();
      
    • [^5..]: 获取从倒数第5个元素开始到结尾的所有元素可以使用 Skip(myArray.Length - 5) 方法:

      var lastFiveElements = myArray.Skip(myArray.Length - 5);
      
    • [..5]: 获取从开头到第6个元素(索引为5)的所有元素可以使用 Take(6) 方法:

      var firstSixElements = myArray.Take(6);
      
    • [2..]: 获取从第3个元素(索引为2)开始到结尾的所有元素可以使用 Skip(2) 方法:

      var fromThirdElement = myArray.Skip(2);
      

通过这些 LINQ 方法,您可以实现与索引和范围特性类似的功能,并以更通用的方式操作各种集合类型,包括数组、列表、字典等。

需要注意的是,LINQ 方法返回的是新的集合,而不是原集合的引用,所以如果需要修改原集合,您需要将结果赋值回去。


🌟Unity促销:100+资产高达60%的折扣。Flash Deals的资产从6折开始,24小时后将下降到5折,然后在另一个24小时后下降到6折。每24小时添加一次新资产。

https://assetstore.unity.com/?flashdeals=true&aid=1100liZJZ

image-20240717102256610

🌟最多下载插件:https://assetstore.unity.com/top-assets/top-download?aid=1011l5dHP

🌟获得永久免费的无限 GPT 查询次数!点击链接并下载Monica插件,即可参加限时活动。

https://monica.im?ref=odfizdq

Logo

🌟Asset Store每周免费资源上新
战斗魔法咒语-第二卷
地址:assetstore.unity.com/publisher-sale?aid=1011l5dHP
兑换码:ALAN2024

posted @   世纪末の魔术师  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
  1. 1 ありがとう··· KOKIA
ありがとう··· - KOKIA
00:00 / 00:00
An audio error has occurred.

作词 : KOKIA

作曲 : KOKIA

编曲 : 日向敏文

作词 : KOKIA

作曲 : KOKIA

誰もが気付かぬうちに

誰もが気付かぬうちに

何かを失っている

フッと気付けばあなたはいない

思い出だけを残して

せわしい時の中

言葉を失った人形達のように

街角に溢れたノラネコのように

声にならない叫びが聞こえてくる

もしも もう一度あなたに会えるなら

もしも もう一度あなたに会えるなら

たった一言伝えたい

ありがとう

ありがとう

時には傷つけあっても

時には傷つけあっても

あなたを感じていたい

思い出はせめてもの慰め

いつまでもあなたはここにいる

もしも もう一度あなたに会えるなら

もしも もう一度あなたに会えるなら

たった一言伝えたい

ありがとう

ありがとう

もしも もう一度あなたに会えるなら

もしも もう一度あなたに会えるなら

たった一言伝えたい

もしも もう一度あなたに会えるなら

たった一言伝えたい

ありがとう

ありがとう

時には傷つけあっても

時には傷つけあっても

あなたを感じてたい

点击右上角即可分享
微信分享提示