从C# 8.0/.Net Core 3.0开始
将支持数组切片,并且新增了Index
和Range
类型。
Range结构文档
Index结构文档
Index i1 = 3;
Index i2 = ^4;
int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine($"{a[i1]}, {a[i2]}");
var slice = a[i1..i2];
上面的代码示例摘自于C# 8.0博客。
请注意,^
前缀表示从数组的末尾开始计数。如在文档示例中所示。
var words = new string[]
{
"The",
"quick",
"brown",
"fox",
"jumped",
"over",
"the",
"lazy",
"dog"
};
Range
和Index
也可以在数组切片之外使用,例如在循环中。
Range range = 1..4
foreach (var name in names[range])
将循环遍历1到4的条目
请注意,撰写本答案时,C# 8.0尚未正式发布
C# 8.x和.Net Core 3.x现在可在Visual Studio 2019及以上版本中使用