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]
:
- 这个语法可以用来访问数组、列表或字符串的倒数第一个元素。
- 例如,
myArray[^1]
可以获取数组myArray
的最后一个元素。
-
范围
[3..5]
:- 这个语法可以用来访问数组、列表或字符串的一个子集。
[3..5]
表示从第4个元素(索引为3)开始,到第6个元素(索引为5)结束(不包括)。
-
其他特性:
[..]
: 不指定开始或结束索引,可以获取整个数组/列表/字符串。[^5..]
: 获取从倒数第5个元素开始到结尾的所有元素。[..5]
: 获取从开头到第6个元素(索引为5)的所有元素。[2..]
: 获取从第3个元素(索引为2)开始到结尾的所有元素。
Linq实现
-
倒数第一个元素
[^1]
:-
LINQ 中可以使用
Last()
方法来获取集合的最后一个元素:var lastElement = myArray.Last();
-
-
范围
[3..5]
:-
LINQ 中可以使用
Skip(3).Take(2)
来获取从第4个元素开始的2个元素:var subArray = myArray.Skip(3).Take(2);
-
-
其他特性:
-
[..]
: 获取整个集合可以使用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 方法返回的是新的集合,而不是原集合的引用,所以如果需要修改原集合,您需要将结果赋值回去。
标签:..,获取,C#,元素,myArray,索引,var,有趣 From: https://www.cnblogs.com/Firepad-magic/p/18306897