SortedList

C#知識系列

SortedList是專門用在排序Key/Value,這些Key/Value可以拿來透過Key的方式來存取

來展示一下這個集合的用法,稍微留意底下的data集合變數,內容是不固定的。
 

    class Program
    {
        private static void Main(string[] args)
        {
            SortedList<int, string> data = new SortedList<int, string>
            {
                [2] = "李二",
                [5] = "趙五",
                [3] = "陳三"
            };
     
         
            foreach (KeyValuePair<int, string> kvp in data)
            {
                Console.WriteLine($"Id={kvp.Key}, Name={kvp.Value}");
            }
         
        }
    }

結果如下,它是按照key的值,進行由小到大的排序。


如果想反轉的話,由大到小呢?

            Console.WriteLine("反轉");
            var query = data.OrderByDescending(x=>x.Key);
            foreach (KeyValuePair<int,string> kvp in query)
            {
                Console.WriteLine($"Id={kvp.Key}, Name={kvp.Value}");
            }


這個其實有一個地方,我們來實驗一下,如果中途加入部分呢?

            SortedList<int, string> data = new SortedList<int, string>
            {
                [2] = "李二",
                [5] = "趙五",
                [3] = "陳三"
            };
            //中途加入
            data.Add(4,"李四");
            foreach (KeyValuePair<int, string> kvp in data)
            {
                Console.WriteLine($"Id={kvp.Key}, Name={kvp.Value}");
            }

討論:
SortedList結合陣列與清單語法,方便使用任何一個格式存取資料,其中資料可以透過Key/Value直接以索引存取
有幾點要注意的是
1.Key不能null
2.Value可以null
3.foreach查看項目是使用KeyValuePair作為傳回的類型
 

元哥的筆記