亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#的sortedlist使用方法

2020-01-24 02:41:18
字體:
來源:轉載
供稿:網友

表示鍵/值對的集合,這些鍵和值按鍵排序并可按照鍵和索引訪問。

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完全相同

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品av在线| 最近2019年日本中文免费字幕| 欧美孕妇性xx| 欧美成人午夜激情视频| 亚洲aa在线观看| 久久久久久高潮国产精品视| 日本精品一区二区三区在线| 国内精品久久影院| 欧美自拍视频在线观看| 精品无人区太爽高潮在线播放| 久久精品亚洲精品| 91精品国产自产在线老师啪| 久久影视电视剧免费网站清宫辞电视| 久久99国产精品久久久久久久久| 成人有码在线播放| 亚洲精品99999| 91精品视频播放| 97精品久久久| 亚洲人a成www在线影院| 国产精品日韩精品| 日韩在线观看成人| 国产精品xxxxx| 91极品女神在线| 亚洲色图日韩av| 精品日韩中文字幕| 中文在线不卡视频| 日韩av第一页| 国产精品自产拍在线观看中文| 一区二区三区美女xx视频| 久热精品视频在线免费观看| 九九视频这里只有精品| 欧美大片在线看免费观看| 日韩精品视频免费在线观看| 色综合导航网站| 91国产美女在线观看| 精品成人69xx.xyz| 不卡伊人av在线播放| 久久久久久久久亚洲| 国产成人鲁鲁免费视频a| 国产啪精品视频| 91午夜在线播放| 91伊人影院在线播放| 亚洲欧洲在线视频| 日韩电影中文字幕一区| 久久久久亚洲精品成人网小说| 日韩二区三区在线| 国产丝袜一区二区| 精品性高朝久久久久久久| 国产精品99久久久久久人| 91国产美女视频| 91久久夜色精品国产网站| 国产精品v片在线观看不卡| 久久久999精品| 日韩av在线免费看| 亚洲精品天天看| 亚洲国语精品自产拍在线观看| 亚洲视频在线看| 欧美wwwxxxx| 久久久国产精品免费| 亚洲自拍小视频免费观看| 欧美成人亚洲成人| 性色av一区二区三区| 欧美一区二区影院| 欧美日韩亚洲高清| 国产精品草莓在线免费观看| 5278欧美一区二区三区| 日韩av在线一区二区| 亚洲jizzjizz日本少妇| 国产91在线播放精品91| 欧美日韩免费一区| 久久久女女女女999久久| 国产精品2018| 日韩精品免费一线在线观看| 夜夜躁日日躁狠狠久久88av| 成人欧美在线观看| 欧美日韩国产专区| 久久精品人人做人人爽| 国产性猛交xxxx免费看久久| 91热精品视频| 亚洲成人精品久久| 亚洲永久在线观看| 大胆人体色综合| 国产精品国产亚洲伊人久久| 成人日韩在线电影| 久久最新资源网| 国产精品久久久精品| 日韩中文字幕精品视频| 国产精品久久久久久久久久99| 26uuu亚洲国产精品| 亚洲va欧美va国产综合久久| 国产精品99久久久久久久久| 欧美一级高清免费| 日韩国产一区三区| 中文字幕精品一区二区精品| 91亚洲精华国产精华| 亚洲老板91色精品久久| 国产一区av在线| 欧美电影在线免费观看网站| 亚洲aa在线观看| 69av在线播放| 亚洲一区二区免费在线| 日韩美女免费线视频| 亚洲精品国产综合区久久久久久久| 久久大大胆人体| 国产成人精品免高潮在线观看| 日韩在线一区二区三区免费视频| xxx成人少妇69| 91香蕉嫩草影院入口| 人妖精品videosex性欧美| 一区二区三区视频免费在线观看| 青青草99啪国产免费| 日韩欧美中文在线| 久久精品影视伊人网| 日韩久久免费电影| 色诱女教师一区二区三区| 国色天香2019中文字幕在线观看| 国产精品稀缺呦系列在线| 亚洲人成电影网站色…| 色综合亚洲精品激情狠狠| 欧美成人四级hd版| 91香蕉国产在线观看| 不卡av日日日| 亚洲精品美女视频| 国产精品高清免费在线观看| 日韩中文字幕亚洲| 69av在线播放| 国产精品久久久久久久9999| 欧美老女人性生活| 亚洲性生活视频| 国产精品视频专区| 国产成人亚洲精品| 欧美理论电影在线播放| 国产成人亚洲综合91精品| 日韩欧美aaa| 久久久久久久久久久91| 国产网站欧美日韩免费精品在线观看| 国内免费精品永久在线视频| 精品久久久久久久中文字幕| yellow中文字幕久久| 久久久爽爽爽美女图片| 国产精品成av人在线视午夜片| 成人乱色短篇合集| 热久久美女精品天天吊色| 欧美日韩成人在线观看| 欧美性受xxxx黑人猛交| 这里只有精品视频在线| 久久成人av网站| 国产精品午夜视频| 欧洲美女免费图片一区| 欧美视频二区36p| 日韩亚洲成人av在线| 国产精品入口免费视| 久久久999精品| 狠狠躁夜夜躁人人爽天天天天97| 国产999在线| 国产日产欧美a一级在线| 中文日韩在线视频| 国产日本欧美一区二区三区| 精品欧美国产一区二区三区| 亚洲黄色av网站| 日韩在线观看网站| 国产成人jvid在线播放| 久久999免费视频| 亚洲激情第一页|