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 @ 2024-07-17 11:13  世纪末の魔术师  阅读(2)  评论(0编辑  收藏  举报