網站首頁 編程語言 正文
C#8.0中, 新增了一個索引與范圍的功能, 為訪問序列中的單個元素或范圍提供了一種簡潔的語法。
在沒有提供索引功能之前, 我們需要訪問序列中的某個元素, 我們可以利用下標或者部分函數進行獲取元素的數據, 如:獲取數組中最后一個元素:
string[] arr = new string[] { "冰晶鳳凰", "影流之主", "德瑪西亞", "艾瑞利亞", "寒冰射手" }; var str1 = arr.Last(); //寒冰射手 var str2 = arr[arr.Length - 1]; //寒冰射手
介紹索引
在使用的的過程中, 我們可以直接在數組集合類的下標中,直接聲明索引, 或者間接聲明Index 類型的索引, 關于索引的使用方法, 如下:
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-------"); //創建索引 Index index=^1 獲取最后一個元素 Index index = ^1; Console.WriteLine($"output:{arr[index]}"); //output:寒冰射手 Console.WriteLine("-------End-------");
介紹范圍
8.0中, 提供了Range語法, 可以通過簡單的語法聲明, 即可獲取到序列中的范圍內所有元素, 而范圍中,也支持索引的聲明方式來創建范圍, 使用示例如下:
## 下標中直接聲明范圍進行獲取元素序列
//使用范圍 [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]; //指定開始和結束范圍, 從0開始到倒數第二個 foreach (var r in index_range_xarr) { Console.WriteLine($"output:{r}"); //輸出: 冰晶鳳凰、影流之主、德瑪西亞、艾瑞利亞 } Console.WriteLine("-------End-------");
?## 單獨創建Range進行獲取元素序列
Range range = 0..2; //單獨聲明范圍 string[] newarr = arr[range]; //冰晶鳳凰、影流之主 foreach (var r in newarr) { Console.WriteLine($"output:{r}"); //輸出:冰晶鳳凰、影流之主 } Console.WriteLine("-------End-------");
?## 不指定開始與結束的范圍 (默認獲取所有元素序列)
string[] index_default_arr = arr[..];// 寫法相當于 arr[0..^0], 獲取arr中所有的元素 foreach (var r in index_default_arr) { Console.WriteLine($"output:{r}"); //輸出: 冰晶鳳凰 、影流之主、德瑪西亞、艾瑞利亞、寒冰射手 }
?## 指定開始或者結束的范圍
string[] index_end_arr = arr[..^0];// 寫法相當于 arr[0..^0] , 獲取arr中所有的元素 foreach (var r in index_end_arr) { Console.WriteLine($"output:{r}"); //輸出: 冰晶鳳凰 、影流之主、德瑪西亞、艾瑞利亞、寒冰射手 } Console.WriteLine("-------End-------"); string[] index_left_arr = arr[^2..];// 寫法相當于 arr[^2..^0], 獲取末尾的最后兩個元素 foreach (var r in index_left_arr) { Console.WriteLine($"output:{r}"); //輸出: 艾瑞利亞 、寒冰射手 } Console.WriteLine("-------End-------");
注:范圍的結束如果有強制聲明, 如 [0..2] , 那么獲取的元素序列, 最終只是下標為 0和1 的元素, 不包含2的元素, 也就是說“末尾”不包含在范圍內。
原文鏈接:https://www.cnblogs.com/zh7791/p/12566472.html
相關推薦
- 2022-06-16 docker?maven?plugin快速部署微服務的詳細流程_docker
- 2023-11-26 在 el-table 中嵌入 el-checkbox el-input el-upload 多組件,
- 2022-11-26 Mongodb?如何將時間戳轉換為年月日日期_MongoDB
- 2022-06-16 Go基礎教程系列之數據類型詳細說明_Golang
- 2023-05-14 Python中tkinter無法同時顯示多個image的解決方法及pack與place解析_pyth
- 2022-11-30 Android實現一鍵鎖屏功能_Android
- 2022-03-30 Python機器學習應用之樸素貝葉斯篇_python
- 2022-06-17 Go語言學習之函數的定義與使用詳解_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支