ASP.NET OOP-集合的 SortedList 类操作_SortedList

ASP.NET OOP-集合的 SortedList 类操作_SortedList



一、首先要在“App_Code / .cs”描述“类”所要的相关程序。


///
/// C# 面向对象程序设计集合的“SortedList 类与二元搜寻法”的操作。
/// 
/// SortList 类是另外一种实践 IDictionsry 的字典型类,
/// 它与 HashTable 类同样可以经由 Key 捜寻集合里面的对象,
/// 它同时支持类似数组集合里面的索引捜寻,
/// 你可以将它当做等同于 Hashtable、Array 这两者的混合类。
/// 
/// SortList 类提供了几个重载的版本,定义如下所示:
/// 
/// public SortList()
/// 
/// @这个构造函数没有接受任何的参数,可以建立一个初始容量为 16 的空集合。
/// 
/// public SortList(int intCapacity)
/// 
/// @这个构造函数指定集合对象建立时的初始容量大小,
/// 其中的 intCapacit 用来指定集合的初始容量。
/// 
/// 建立 SortList 类的集合对象之后,我们可以透过 Item 属性或者是
/// GetBylndex()、SetBylndex() 这两个方法来存取集合中的对象元素,
/// 其中的方法 GetBylndex() 、SetBylndex() 提供使用数组集合的方式
/// 取存集合里面所包含的元素。
/// 
/// object GetByIndex(int index)
/// 
/// @取得 SortedList 集合里面,指定索引的值,
/// 其中 index 为集合里面指定存取的索引。
/// 
/// public virtual void SetByIndex(int index, object obj)
/// 
/// @将一个指定的对象加入到集合中指定的索引位置。
/// index 为集合里面指定的索引。
/// obj 为加入此索引位置的对象。
///                           
/// 由于 SortList 类实践了
/// “IDictionary、ICollection、IEnumerable、ICloneable”这四个界面
/// 因此同时也实践这些界面所定义的方法成员,如之前所介绍的
/// 几个类之中所提供的 ContainsKey、ContainsValue、GetEnumerator
/// 这些通用的方法定义。
/// 
/// SortList 类是使用二元搜寻法来完成索引搜寻,因此对于
/// 搜寻集合中排序过的对象,将会非常有效率。
/// 
/// 当集合中的键值已经排序过的话,二元捜寻是一种效率很好的捜寻方式,
/// 其原理是将先集合里面的元素切开分成两个部分,
/// 一开始将“目标元素”与“中间值”比较,
/// 如果是大于“中间值”则继续比较后半段的中间值,
/// 否则比较前半段的“中间值”,
/// 也就是将有可能落在中间的部分持续切半,直到捜寻到符合的结果。
/// 
/// 网络资源
/// @二元搜索法(Binary Search)
/// => http://emn178.pixnet.net/blog/post/88780407
///


public class SortedList_Cs
{

}

二、接下来就可以在“aspx.cs”操作相关“类”所建立的“对象”等属性与方法的操作。


using System;
using System.Collections;

public partial class _SortedList : System.Web.UI.Page
{
    //当 Button 控件按下后所要执行的动作。
    protected void Button1_Click(object sender, EventArgs e)
    {
        //声明建构对象操作实例。(SortedList)
        SortedList objSortedList = new SortedList();

        //使用循环执行 10 次进程。
        for (int i = 0; i < 10; i++)
        {
            //调用 Add() 方法将索引键名称与值加入到 SortedList 对象里面。 
            objSortedList.Add("Key" + i, "Value" + i);
        }

        //调用执行显示数组里面的元素内容。
        ShowArrayList_Fn(objSortedList);
    }

    //显示数组里面的元素内容功能处理方法。
    protected void ShowArrayList_Fn(SortedList objSortedList_Val)
    {
        //设定 Label 控件的显示文字。
        this.Label_Output.Text = "下列为集合中所包含的对象元素 键/值 对:

";


        //使用循环执行 10 次进程。
        for (int i = 0; i < 10; i++)
        {
            //设定 Label 控件的显示文字。( 输出 Key 值与 Value 值)
            this.Label_Output.Text += String.Format("objSortedList[{0}] 的值为:[{1}]
", objSortedList_Val.GetKey(i), objSortedList_Val["Key" + i]);

        }

        //设定 Label 控件的显示文字。
        this.Label_Output.Text += "

";


        //设定 Label 控件的显示文字。
        this.Label_Output.Text += "下列为使用索引依序取出集合中的对象元素:

";


        //使用循环执行 10 次进程。
        for (int i = 0; i < 10; i++)
        {
            //设定 Label 控件的显示文字。( 输出 Key 值与 Value 值)
            this.Label_Output.Text += String.Format("索引 {0} 的值为:{1}
", i, objSortedList_Val.GetByIndex(i).ToString());

        }
    }

}

三、详细 UI 部分请自行参阅源代码的.aspx 部分,源代码请见 YouTube 说明页的下载连结位置。