C# 8中的范围类型(Range Type)
C# 8.0中加入了一個(gè)新的范圍類型(Range Type)。
這里我們首先展示一些代碼,并一步一步為代碼添加一些不同的東西, 為大家展示一下范圍類型的功能和用法。
我們最原始的代碼如下:
這里我們顯示的定義了我們查詢數(shù)組的索引1-3, 并輸出他們的值。毫無疑問,當(dāng)我們運(yùn)行程序之后,代碼結(jié)果如下:
但是,假設(shè)我們不想使用for循環(huán),而是想要使用這個(gè)名為“range”的新特性, 我們可以將代碼重寫為:
現(xiàn)在我們來運(yùn)行程序。
結(jié)果比我們預(yù)想的少了一個(gè)。這是我們使用范圍類型遇到的第一個(gè)問題。
范圍的起始索引是包含的,范圍的結(jié)束索引是排除的
如果我們修改一下我們的代碼:
我們就會獲得預(yù)想的結(jié)果。
范圍縮寫
使用范圍來定義起始和結(jié)束索引非常的好用。但是如何表示從一個(gè)索引開始直到數(shù)組的最后一個(gè)對象呢?
從一個(gè)索引開始到數(shù)組的最后一個(gè)對象
輸出結(jié)果:
從數(shù)組的第一個(gè)對象到指定索引
輸出結(jié)果:
Item1Item2 Item3
整個(gè)數(shù)組
輸出結(jié)果:
Item1Item2 Item3 Item4 Item5
從數(shù)組的某個(gè)索引開始一直到距數(shù)組尾部某個(gè)索引
C# 8.0提供了^操作符,^操作符表示從數(shù)組末尾計(jì)算索引。
foreach (var item in myArray[1..^1]) {Console.WriteLine(item); }輸出結(jié)果:
Item2
范圍類型
當(dāng)我們編寫1..4的時(shí)候,看起來就好像我們在使用新的語法,實(shí)際上這只是個(gè)語法糖,實(shí)際上它初始化一個(gè)Range類對象,就好像我們可以使用{“1”, “2”, “3”}就可以創(chuàng)建一個(gè)數(shù)組一樣。
替代Substring方法
使用范圍類型的另一個(gè)好處就是你可以使用它替換String.Substring方法, 寫起來更加簡單。
Console.WriteLine("123456789"[1..4]);原文地址:https://www.cnblogs.com/lwqlun/p/10095821.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的C# 8中的范围类型(Range Type)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 2017 1
- 下一篇: [翻译]初试C# 8.0