C#集合之有序列表的用法
如果需要基于鍵對所需集合排序,就可以使用SortedList<TKey,TValue>類。這個(gè)類按照鍵給元素排序。這個(gè)集合中的值和鍵都可以使用任何類型。定義為鍵的自定義類型需要實(shí)現(xiàn)IComparer<T>接口,用于給列表中的元素排序。
使用構(gòu)造函數(shù)創(chuàng)建一個(gè)有序列表,在用Add方法添加:
var books = new SortedList<string, string>(); books.Add("Professional WPF Programming", "978–0–470–04180–2"); books.Add("Professional ASP.NET MVC 3", "978–1–1180–7658–3");
還可以使用索引器將元素添加到列表中
books["Beginning Visual C# 2010"] = "978–0–470-50226-6"; books["Professional C# 4 and .NET 4"] = "978–0–470–50225–9"; SortedList<TKey,TValue>有多個(gè)重載版本的構(gòu)造函數(shù)。
可以使用foreach語句遍歷列表,枚舉器返回的元素是KeyValuePair<TKey,TValue>類型,其中包含了鍵和值:
foreach (KeyValuePair<string, string> book in books) { Console.WriteLine("{0}, {1}", book.Key, book.Value); }
迭代語句會(huì)按鍵的順序顯示:
Beginning Visual C# 2010, 978–0–470-50226-6 Professional ASP.NET MVC 3, 978–1–1180–7658–3 Professional C# 4 and .NET 4, 978–0–470–50225–9 Professional WPF Programming, 978–0–470–04180–2
也可以使用Values和Keys屬性訪問值和鍵:
foreach (string isbn in books.Values) { Console.WriteLine(isbn); } foreach (string title in books.Keys) { Console.WriteLine(title); }
如果嘗試使用索引器訪問一個(gè)元素,但傳遞的鍵不存在,就會(huì)拋出異常。ContainsKey()方法,可以判斷所傳遞的鍵是否存在于集合中。TryGetValue該方法嘗試獲得指定鍵的值,如果指定的=鍵對應(yīng)的值不存在,該方法不會(huì)拋出異常。
到此這篇關(guān)于C#集合之有序列表的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)現(xiàn)winform自動(dòng)關(guān)閉MessageBox對話框的方法
這篇文章主要介紹了C#實(shí)現(xiàn)winform自動(dòng)關(guān)閉MessageBox對話框的方法,實(shí)例分析了C#中MessageBox對話框的相關(guān)操作技巧,需要的朋友可以參考下2015-04-04詳解C#中的System.Timers.Timer定時(shí)器的使用和定時(shí)自動(dòng)清理內(nèi)存應(yīng)用
這篇文章主要介紹了詳解C#中的System.Timers.Timer定時(shí)器的使用和定時(shí)自動(dòng)清理內(nèi)存應(yīng)用,需要的朋友可以參考下2017-06-06Datagridview使用技巧(9)Datagridview的右鍵菜單
這篇文章主要為大家詳細(xì)介紹了Datagridview使用技巧,Datagridview的右鍵菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05C#結(jié)合OpenCVSharp4使用直方圖算法實(shí)現(xiàn)圖片相似度比較
這篇文章主要為大家詳細(xì)介紹了C#如何結(jié)合OpenCVSharp4使用直方圖算法實(shí)現(xiàn)圖片相似度比較,文中的示例代碼簡潔易懂,需要的小伙伴可以參考下2023-09-09