C 實現自定義Dictionary類例項

2022-10-06 15:39:21 字數 2728 閱讀 2281

1.關於mydictionary類

本文中實現的mydictionary類具有如下功能

1)可以增加、修改、刪除鍵值對

2)可以通過索引器,找到乙個鍵對應的值

3)可以遍歷列印類中全部的鍵值對

4)可以將類中的序列轉化為有序的(不排序、公升序、降序)list型別

mydictionary類是乙個具有兩個引數的泛型類,內部機制採用以鍵值對(keyvaluepair)型別為元素的雙向鍊錶(linkedlist)實現

2.實現**

class mydictioinary

}return default(tvalue);

} }///

/// 新增一組資料

///

///

///

public void add(tkey tk, tvalue tv)

}lldictionary.addlast(new keyvaluepair(tk, tv));

} ///

/// 刪除一組資料

///

///

public void delete(tkey tk)

}throw new exception("刪除失敗:不存在這個主鍵");

} ///

/// 修改一組資料

///

///

///

public void modify(tkey tk, tvalue tv)

lln = lln.next;

} throw new exception("修改失敗:不存在這個主鍵");

} ///

/// 列印整個dictionary內的全部資料

///

public void printdata()

console.writeline(string.format("共計輸出 項", lldiction

console.writeline(datetime.now.tolongtimestring());

console.writeline("***************===");

} ///

/// 決定按什麼順序列印dictionary內的資料

///

public enum printtype

; ///

/// 返回list型別的資料

///

/// list內資料的排序情況

///

public list> tolist(printtype printtype = printtype.normal)

case printtype.ascend:

}else //key可以被轉化為浮點數的情況

}lln2 = lln2.next;

}if (lln2 == null)

lln = lln.next;}}

catch (exception ex)

return newll.tolist();

}case printtype.descend:

}else //key可以被轉化為浮點數的情況

}lln2 = lln2.next;

}if (lln2 == null)

lln = lln.next;}}

catch (exception ex)

return newll.tolist();

}default: return null;

} }}

3程式設計客棧.main函式呼叫示例

st程式設計客棧atic void main(string args)

catch (exception ex)

//刪除一組資料

dic.delete("1");

//新增一組資料

dic.add("1", "mars");

//修改兩組資料

dic.modify("1", "jupiter");

dic.modify("2", "saturn");

//新增兩組資料

dic.add("6", "sun");

dic.add("5", "moon");

dic.add("8", "uranus");

dic.add("9", "neptune");

dic.printdata();

//通過索引找到對應值

console.writeline("key為6的元素value為:" + dic["6"]);

console.writeline("key為3的元素value為:" + dic["3"]);

list> l;

//輸出公升序排列好的list

l = dic.tolist(mydictioinary.printtype.ascend);

console.writeline("公升序排列後的list:");

for (int i = 0; i < l.count; i++)

//輸出降序排列好的list

l = dic.tolist(mydictioinary.printtype.descend);

console.writeline("降排列後的list:");

for (int i = 0; i < l.count; i++)

console.readline();

}4.執行示例

本文標題: c#實現自定義dictionary類例項

本文位址:

C 自定義屬性實現

在用c 寫程式的時候,可能會用到自定義屬性來傳遞一些資料,這次就來簡單看看自定義屬性的用法 1.寫自定義屬性類 a.宣告自定義屬性類,繼承自attribute類 b.定義所需的建構函式,欄位和屬性 c.新增attributeusageattribute屬性 attributeusage attrib...

自定義Toast實現自定義Toast布局

平時我們使用toast的時候都是這樣的一種方法 toast toast toast.maketext context,duration 現在我們來自定義下toast的布局,首先看下toast建立時的源 public static toast maketext context context,char...

C 如何實現自定義類

pragma once include include using namespace std class csvitem csvitem const csvitem item void operator const csvitem item public string lock time 作業上鎖...