溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#8.0中的索引與范圍功能怎么用

發(fā)布時間:2022-01-30 09:40:05 來源:億速云 閱讀:170 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下C#8.0中的索引與范圍功能怎么用的相關(guān)知識點,內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

C#8.0中, 新增了一個索引與范圍的功能, 為訪問序列中的單個元素或范圍提供了一種簡潔的語法。

在沒有提供索引功能之前, 我們需要訪問序列中的某個元素, 我們可以利用下標(biāo)或者部分函數(shù)進(jìn)行獲取元素的數(shù)據(jù), 如:獲取數(shù)組中最后一個元素:

            string[] arr = new string[]
            {
                "冰晶鳳凰",  
                "影流之主",  
                "德瑪西亞",  
                "艾瑞利亞",  
                "寒冰射手"   
            };              

            var str1 = arr.Last(); //寒冰射手
            var str2 = arr[arr.Length - 1];  //寒冰射手

介紹索引

在使用的的過程中, 我們可以直接在數(shù)組集合類的下標(biāo)中,直接聲明索引, 或者間接聲明Index 類型的索引, 關(guān)于索引的使用方法, 如下:

             string[] arr = new string[]
            {
                "冰晶鳳凰",  //^5   
                "影流之主",  //^4
                "德瑪西亞",  //^3
                "艾瑞利亞",  //^2  = ...
                "寒冰射手"   //^1  =arr.Length-1
            };              //^0  =arr.Length  

            //使用索引 ^1 獲取最后一個元素
            Console.WriteLine($"output:{arr[^1]}"); //output:寒冰射手
            Console.WriteLine("-------End-------");

            //創(chuàng)建索引 Index index=^1 獲取最后一個元素
            Index index = ^1;
            Console.WriteLine($"output:{arr[index]}"); //output:寒冰射手
            Console.WriteLine("-------End-------");

介紹范圍

8.0中, 提供了Range語法, 可以通過簡單的語法聲明, 即可獲取到序列中的范圍內(nèi)所有元素, 而范圍中,也支持索引的聲明方式來創(chuàng)建范圍, 使用示例如下:

## 下標(biāo)中直接聲明范圍進(jìn)行獲取元素序列

             //使用范圍 [0..2] 獲取索引0和1的元素,不包含末尾索引2的元素
            string[] newarr = arr[0..2];  //冰晶鳳凰、影流之主
            foreach (var r in newarr)
            {
                Console.WriteLine($"output:{r}");
            }
            Console.WriteLine("-------End-------");

            string[] index_range_xarr = arr[0..^1]; //指定開始和結(jié)束范圍,  從0開始到倒數(shù)第二個
            foreach (var r in index_range_xarr)
            {
                Console.WriteLine($"output:{r}");  //輸出: 冰晶鳳凰、影流之主、德瑪西亞、艾瑞利亞
            }
            Console.WriteLine("-------End-------");

 ## 單獨創(chuàng)建Range進(jìn)行獲取元素序列

            Range range = 0..2; //單獨聲明范圍
            string[] newarr = arr[range];  //冰晶鳳凰、影流之主
            foreach (var r in newarr)
            {
                Console.WriteLine($"output:{r}"); //輸出:冰晶鳳凰、影流之主
            }
            Console.WriteLine("-------End-------");

 ## 不指定開始與結(jié)束的范圍 (默認(rèn)獲取所有元素序列)

            string[] index_default_arr = arr[..];// 寫法相當(dāng)于 arr[0..^0],  獲取arr中所有的元素
            foreach (var r in index_default_arr)
            {
                Console.WriteLine($"output:{r}");  //輸出: 冰晶鳳凰 、影流之主、德瑪西亞、艾瑞利亞、寒冰射手
            }

 ## 指定開始或者結(jié)束的范圍

             string[] index_end_arr = arr[..^0];// 寫法相當(dāng)于 arr[0..^0] , 獲取arr中所有的元素
            foreach (var r in index_end_arr)
            {
                Console.WriteLine($"output:{r}"); //輸出: 冰晶鳳凰 、影流之主、德瑪西亞、艾瑞利亞、寒冰射手
            }
            Console.WriteLine("-------End-------");


            string[] index_left_arr = arr[^2..];// 寫法相當(dāng)于 arr[^2..^0], 獲取末尾的最后兩個元素
            foreach (var r in index_left_arr)
            {
                Console.WriteLine($"output:{r}");  //輸出: 艾瑞利亞 、寒冰射手
            }
            Console.WriteLine("-------End-------");

注:范圍的結(jié)束如果有強(qiáng)制聲明, 如 [0..2] , 那么獲取的元素序列, 最終只是下標(biāo)為 0和1 的元素, 不包含2的元素, 也就是說“末尾”不包含在范圍內(nèi)。

以上就是“C#8.0中的索引與范圍功能怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI