现在的位置: 首页 > 综合 > 正文

SortedList 既是泛型又是非泛型的.NET类

2012年10月26日 ⁄ 综合 ⁄ 共 1911字 ⁄ 字号 评论关闭

SortedList类代码:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace SortedListHelper//注意 SortedList既是泛型非泛型
{
    class SortedListHelper
    {
        //private SortedListHelper list;//注意:.NET类库中没有SortedListHelper,故这种错误的提示就是不会出现智能提示!
        private SortedList list;
        public SortedList List
        {
            set { list = value; }
            get { return list; }
        }
        public SortedListHelper()
        {
            list=new SortedList();
            Console.WriteLine("----------SortedList");
        }
        public void Add(object key,object value)
        {
            list.Add(key,value);
            Console.WriteLine("加入/t键:{0}/t值:{1}",key,value);
        }
        public void Remove(object key)
        {
            list.Remove(key);
            Console.WriteLine("删除/t键:{0}",key);
        }
        public void RemoveAt(int i)
        {
            list.RemoveAt(i);
            Console.WriteLine("移除/t第{0}个元素",i+1);
        }
        public void GetValueAt(int i)
        {
            Console.WriteLine("取值/t第{0}个元素/t键:{1}/t值:{2}",i+1,list.GetKey(i),list.GetByIndex(i));

        }
        public void GetValues()
        {
            foreach (DictionaryEntry de in list)
            {
                Console.WriteLine("遍历");
                Console.WriteLine("/t键:{0}/t值:{1}", de.Key, de.Value);
            }
        }
        public void GetInfo()
        {
            Console.WriteLine("信息/t元素总数:{0}/t可包含元素总数{1}",list.Count,list.Capacity);
        }
    }
}
测试代码:

using System;
using System.Collections.Generic;
using System.Text;

namespace SortedListHelper
{
    class Program
    {
        static void Main(string[] args)
        {
            SortedListHelper list = new SortedListHelper();
            list.Add(1,"tt");
            list.Add(0, "ff");
            list.Add(2,"gg");
            list.GetValues();
            list.GetInfo();
            list.GetValueAt(0);
            list.RemoveAt(0);
            list.Remove(1);
            list.GetInfo();
        }
    }
}
注意:SortedList默认情况下对键/值对按照键值由小到大的顺序排序

抱歉!评论已关闭.