C# 中的 IReadOnlyDictionary 和 IReadOnlyList實(shí)例詳解
C# 中的 IReadOnlyDictionary
和 IReadOnlyList
是接口,用于表示只讀的字典和只讀的列表。這些接口提供了對(duì)集合的只讀訪問權(quán)限,即不允許對(duì)集合進(jìn)行修改操作,例如添加、刪除或修改元素。這種只讀特性對(duì)于需要保護(hù)數(shù)據(jù)完整性或只需要進(jìn)行讀取操作的場(chǎng)景非常有用。
- 1.IReadOnlyDictionary<TKey, TValue>:
- IReadOnlyDictionary<TKey, TValue> 接口表示只讀的鍵值對(duì)字典。它繼承自 IEnumerable<KeyValuePair<TKey, TValue>> 接口,因此可以像遍歷字典一樣遍歷只讀字典中的鍵值對(duì)。
- IReadOnlyDictionary<TKey, TValue> 提供了一組只讀的屬性和方法,例如 Count 屬性用于獲取字典中鍵值對(duì)的數(shù)量,Keys 屬性用于獲取只讀的鍵的集合,Values 屬性用于獲取只讀的值的集合,ContainsKey() 方法用于檢查字典中是否包含指定的鍵,以及 TryGetValue() 方法用于根據(jù)鍵獲取對(duì)應(yīng)的值。
- 示例:
IReadOnlyDictionary<string, int> dictionary = new Dictionary<string, int>() { { "Apple", 1 }, { "Banana", 2 }, { "Orange", 3 } }; Console.WriteLine(dictionary["Apple"]); // 輸出: 1 // 遍歷只讀字典的鍵值對(duì) foreach (var kvp in dictionary) { Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}"); }
- 2.IReadOnlyList<T>:
- IReadOnlyList<T> 接口表示只讀的元素列表。它繼承自 IEnumerable<T> 接口,因此可以使用迭代器遍歷只讀列表。
- IReadOnlyList<T> 提供了一組只讀的屬性和方法,例如 Count 屬性用于獲取列表中的元素?cái)?shù)量,Item[] 屬性用于通過索引訪問列表中的元素,Contains() 方法用于檢查列表中是否包含指定的元素,IndexOf() 方法用于獲取指定元素在列表中的索引位置。
- 示例:
IReadOnlyList<string> list = new List<string>() { "Apple", "Banana", "Orange" }; Console.WriteLine(list[0]); // 輸出: Apple // 遍歷只讀列表 foreach (var item in list) { Console.WriteLine(item); }
需要注意的是,IReadOnlyDictionary
和 IReadOnlyList
接口只提供了對(duì)集合的只讀訪問權(quán)限,不允許對(duì)集合進(jìn)行修改操作。如果需要對(duì)集合進(jìn)行修改操作,可以使用 Dictionary<TKey, TValue>
和 List<T>
類。
到此這篇關(guān)于C# 中的 IReadOnlyDictionary 和 IReadOnlyList的文章就介紹到這了,更多相關(guān)C# IReadOnlyDictionary 和 IReadOnlyList內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用Enum.TryParse()實(shí)現(xiàn)枚舉安全轉(zhuǎn)換
這篇文章介紹了C#使用Enum.TryParse()實(shí)現(xiàn)枚舉安全轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08C#使用log4net結(jié)合sqlite數(shù)據(jù)庫實(shí)現(xiàn)記錄日志
因?yàn)榻Y(jié)構(gòu)化的數(shù)據(jù)庫存儲(chǔ)的日志信息,可以寫專門的軟件讀取歷史日志信息,通過各種條件篩選,可操作性極大增強(qiáng),有這方面需求的開發(fā)人員可以考慮,本文給大家介紹了C#使用log4net結(jié)合sqlite數(shù)據(jù)庫記錄日志,需要的朋友可以參考下2024-10-10DevExpress獲取節(jié)點(diǎn)下可視區(qū)域子節(jié)點(diǎn)集合的實(shí)現(xiàn)方法
這篇文章主要介紹了DevExpress獲取節(jié)點(diǎn)下可視區(qū)域子節(jié)點(diǎn)集合的實(shí)現(xiàn)方法,是C#程序設(shè)計(jì)中較為常見的技巧,需要的朋友可以參考下2014-08-08C#實(shí)現(xiàn)Excel轉(zhuǎn)PDF時(shí)設(shè)置內(nèi)容適應(yīng)頁面寬度
將Excel轉(zhuǎn)為PDF格式時(shí),通常情況下轉(zhuǎn)換出來的PDF頁面都是默認(rèn)的寬度大小。所以本文提供了C#實(shí)現(xiàn)Excel轉(zhuǎn)PDF時(shí)設(shè)置內(nèi)容適應(yīng)頁面寬度的示例代碼,需要的可以參考一下2022-04-04Entity?Framework映射TPH、TPT、TPC與繼承類
這篇文章介紹了Entity?Framework映射TPH、TPT、TPC與繼承類,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06C#實(shí)現(xiàn)頁面GZip或Deflate壓縮的方法
這篇文章主要介紹了C#實(shí)現(xiàn)頁面GZip或Deflate壓縮的方法,涉及C#通過GZipStream與DeflateStream實(shí)現(xiàn)頁面壓縮的相關(guān)技巧,需要的朋友可以參考下2015-06-06C#中枚舉類型和radiobox關(guān)聯(lián)操作的方法
這篇文章主要介紹了C#中枚舉類型和radiobox關(guān)聯(lián)操作的方法,實(shí)例分析了C#中枚舉類型及與控件關(guān)聯(lián)操作的相關(guān)技巧,需要的朋友可以參考下2015-04-04C#進(jìn)行PDF表單域的創(chuàng)建填寫與刪除操作
通常情況下,PDF文件是不可編輯的,但PDF表單提供了一些可編輯區(qū)域,允許用戶填寫和提交信息,本文主要介紹了如何使用C#實(shí)現(xiàn)PDF表單域的創(chuàng)建,填寫與刪除操作,感興趣的可以了解下2024-04-04