C#巧用Index和 Range查询数组

Index、Range 是 C# 8.0 中新加入的类型,它们可以用来表示字符串或数组的索引或范围。Index 类似于其他语言中的负索引值,但其实是由编译器帮我们做了一个转换,Range 使得我们对数组截取某一部分的操作会非常简单。本文将介绍他们如何使用。

1、Index关键字

使用 Index 类型时,你可以使用一个数字来表示索引,还可以使用 ^ 表示从字符串末尾或数组末尾开始的索引。.

案例:

string s = "Hello, World!欢迎关注:dotnet开发跳槽";// 表示字符串的第 12个字符Index i1 = 12;// 表示字符串的最后一个字符,如果含中文字符则需要+1,所以这里是2Index i2 = ^2;char c1 = s[i1];   // c1 等于 'W'char c2 = s[i2];   // c2 等于 '槽'

2、Range关键字

可以用Range 两个索引(使用 Index 类型)表示一个范围。

案例:

string stri = "Hello, World!欢迎关注:dotnet开发跳槽!";// 表示字符串的第 18个字符到第28个字符Range r = 18..28;string sub = stri[r];   // sub 等于 "dotnet开发跳槽"

还可以使用 .. 表示整个字符串或数组,案例如下:

stri = "欢迎关注:dotnet开发跳槽!";// 表示整个字符串2种方法Range r1 = ..;Range r2 = 0..^0;string sub1 = stri[r1];   // sub1 等于 "欢迎关注:dotnet开发跳槽!"string sub2 = stri[r2];   // sub2 等于 "欢迎关注:dotnet开发跳槽!"

结语

     本文讲述了 Index 和 Range的使用,让数组中可以使用特殊的索引方式。需要注意的是Index 和 Range 类型是一个结构体,而不是一个类。希望本文对你有所帮助,欢迎留言和点赞。