程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#的sortedlist應用辦法

c#的sortedlist應用辦法

編輯:C#入門知識

c#的sortedlist應用辦法。本站提示廣大學習愛好者:(c#的sortedlist應用辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是c#的sortedlist應用辦法正文


表現鍵/值對的聚集,這些鍵和值按鍵排序並可依照鍵和索引拜訪。

SortedList最適合對一列健/值對 停止排序,在排序時,是對鍵停止排序,SortedList 是 Hashtable 和 Array 的混雜。當應用 Item 索引器屬性依照元素的鍵拜訪元素時,其行動相似於 Hashtable。當應用 GetByIndex 或 SetByIndex 依照元素的索引拜訪元素時,其行動相似於 Array。

SortedList 在外部保護兩個數組以將數組存儲到列表中;即,一個數組用於鍵,另外一個數組用於相干聯的值。每一個元素都是一個可作為 DictionaryEntry 對象停止拜訪的鍵/值對。鍵不克不及為空援用(Visual Basic 中為 Nothing),但值可以。SortedList 的容量是列表可具有的元素數。跟著向 SortedList 中添加元素,容量經由過程從新分派按需主動增長。可經由過程挪用 TrimToSize 或經由過程顯式設置 Capacity 屬性削減容量。SortedList 的元素將依照特定的 IComparer 完成(在創立SortedList 時指定)或依照鍵自己供給的 IComparable 完成並根據鍵來停止排序。豈論在哪一種情形下,SortedList 都不許可反復鍵。

索引次序基於排序次序。當添加元素時,元素將按准確的排序次序拔出 SortedList,同時索引會響應地停止調劑。若移除元素,索引也會響應地停止調劑。是以,當在SortedList 中添加或移除元素時,特定鍵/值對的索引能夠會更改。

因為要停止排序,所以在 SortedList 上操作比在 Hashtable 上操作要慢。然則,SortedList 許可經由過程相干聯鍵或經由過程索引對值停止拜訪,可供給更年夜的靈巧性。

一。添加刪除

1。public virtual void Add(object key,object value);

此聚集中的索引從零開端。

將帶有指定鍵和值的元素添加到 SortedList。

經由過程設置 SortedList 中不存在的鍵的值,Item 屬性也可用於添加新元素。例如:myCollection["myNonexistentKey"] = myValue。然則,假如指定的鍵曾經存在於 SortedList 中,則設置 Item 屬性將改寫舊值。比擬之下,Add 辦法不修正現有元素。

SortedList sList = new SortedList();
sList.Add(1,"d");
sList.Add(2,"c");
sList.Add(3,"b");
sList.Add(4,"a");
//成果為d c b a,所以可知是按鍵排序,而非值排序

DropDownList3.DataSource = sList;
DropDownList3.DataTextField = "Key";
DropDownList3.DataValueField = "Value";
DropDownList3.DataBind();

2。public virtual void Remove(object key);

從 SortedList 中移除帶有指定鍵的元素
假如 SortedList 不包括帶有指定鍵的元素,則 SortedList 堅持不變。不激發異常

SortedList sList = new SortedList();
sList.Add(1,"d");
sList.Add(2,"c");
sList.Add(3,"b");
sList.Add(4,"a");
//sList.Remove("b");   毛病,是按key刪除,而非Value
sList.Remove(3);   //刪除[3,"b"]
DropDownList3.DataSource = sList;
DropDownList3.DataTextField = "Key";
DropDownList3.DataValueField = "Value";
DropDownList3.DataBind();

3。public virtual void RemoveAt(int index);

移除 SortedList 的指定索引處的元素。

SortedList sList = new SortedList();
sList.Add(1,"d");
sList.Add(2,"c");
sList.Add(3,"b");
sList.Add(4,"a");
sList.RemoveAt(3); //刪除的是[4,"a"],這裡的參數是索引號,而非鍵值,
//與sList.Remove(3)分歧;   sList.Remove(3)刪除[3,"b"]

DropDownList3.DataSource = sList;
DropDownList3.DataTextField = "Key";
DropDownList3.DataValueField = "Value";
DropDownList3.DataBind();

4。public virtual void Clear();

從 SortedList 中移除一切元素Count 設置為零。Capacity 堅持不變。若要重置 SortedList 的容量,請挪用 TrimToSize或直接設置 Capacity 屬性。截去空 SortedList 會將 SortedList 的容量設置為默許容量,而不是零

二。與索引有關的操作

1。public virtual void SetByIndex(int index,object value);

調換 SortedList 中指定索引處的值。

SortedList sList = new SortedList();
sList.Add(1,"d");
sList.Add(2,"c");
sList.Add(3,"b");
sList.Add(4,"a");
sList.SetByIndex(1,"dddddd");   //1為索引,假如Count<2,則失足,也就是說必需存在
//而sList[2] = "dddddd";不存在這類景象,
//也就是說sList[2] = "dddddd"是
//假如鍵存在在修正值,不存在則添加
DropDownList3.DataSource = sList;
DropDownList3.DataTextField = "Key";
DropDownList3.DataValueField = "Value";
DropDownList3.DataBind();

2。public virtual object GetByIndex(int index);

獲得 SortedList 的指定索引處的值。index必需小於Count,不然失足

SortedList sList = new SortedList();
sList.Add(1,"d");
sList.Add(2,"c");
sList.Add(3,"b");
sList.Add(4,"a");
//sList.Clear();
int nIndex = 2;
if (nIndex<sList.Count)
{
    Label3.Text = sList.GetByIndex(nIndex).ToString();
}
else
{
   Label3.Text = "nIndex>=Count";
}

3.public virtual int IndexOfKey(object key);

前往 SortedList 中指定鍵的從索引,這是Hashtable所沒有的,由於Hashtable沒有有序這個概念,它的排序是外部的

4.public virtual int IndexOfValue(object value);

前往指定的值在 SortedList 中第一個婚配項的索引,這是Hashtable所沒有的,由於Hashtable沒有有序這個概念,它的排序是外部的

SortedList sList = new SortedList();
sList.Add(1,"d");
sList.Add(2,"c");
sList.Add(3,"b");
sList.Add(4,"a");
sList.Add(5,"d");
int nIndex = 0;
nIndex = sList.IndexOfKey(1);   //為0
nIndex = sList.IndexOfValue("d"); //值婚配的有兩個,這時候前往第一個婚配的,所認為0

三。其他

1.public virtual object GetKey(int index);

獲得 SortedList 的指定索引處的鍵,這也是Hashtable所弗成能有的

2.public virtual IList GetKeyList();

獲得 SortedList 中的鍵

SortedList sList = new SortedList();
sList.Add(1,"d");
sList.Add(2,"c");
sList.Add(3,"b");
sList.Add(4,"a");
sList.Add(5,"d");
Label3.Text = "";
IList iList = sList.GetKeyList();
for (int i=0; i<sList.Count; i++)
{
Label3.Text += iList[i].ToString();
Label3.Text += "   ";
}

注:IList 接口,表現可依照索引零丁拜訪的一組對象,個中有一個Item屬性,在C#也就就是索引器

3.public virtual IList GetValueList();

獲得 SortedList 中的值

4.public virtual bool Contains(object key);

肯定 SortedList 能否包括特定鍵

5.public virtual bool ContainsKey(object key);

肯定 SortedList 能否包括特定鍵,與Contains(object key);完整同

6.public virtual bool ContainsValue(object value);

肯定 SortedList 能否包括特定值

上述這三個函數與Hashtable完整雷同

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved