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