来源:https://note.guoqianfan.com/2021/07/13/Range-and-Index-in-csharp
Range-范围
范围运算符
-
范围运算符:
..
,它会生成一个Range
对象。 -
语法:
{startIndex}..{endIndex}
:包含startIndex
,不包含endIndex
-
限制:0 <=
startIndex
<=endIndex
<=arr.Length
,其他均会报错!startIndex
等于endIndex
时,取不出元素,会生成一个空数组。
注意:
- 默认情况下,
..
的前面是0
,后面是arr.Length
(不含)。..
等价于0..arr.Length
。 - 所以
..
的前面和后面均可以为空。 - 所以
..
也可以单独使用,代表整个索引范围(0..arr.Length
):arr[..]
是arr
的完整拷贝。
深拷贝还是浅拷贝需要看元素是值类型
还是引用类型
。值类型
复制值,可以认为是深拷贝;引用类型
复制引用,就是浅拷贝。
Range
Range
用来从集合中取出 指定索引范围 的元素来生成新的集合。
创建Range
:Range range = 2..4;
var arr = new[] {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Range range = 2..4