我想创建一个具有以下方法的堆栈:
getValueOf ("key")
getKeyOf ("value")
addKeyAndValue ("key" "value")
delete ("key")
任何人都可以帮助我,因为我是C sharp的新手
答案 0 :(得分:3)
您需要检查Dictionary
课程,或者如果您想要“优先”(已排序),则需要检查SortedList
课程。
编辑:如果您需要自己实现堆栈。您需要检查ICollection
,IEnumerable
和ICloneable
接口。
然而,如果符合您的需求,最好使用已经在Framework中退出的类。根据您的说明,您似乎需要Dictionary
或SortedList
。
答案 1 :(得分:2)
你看过Dictionary班了吗? 这不是堆栈,但是你描述的方法也不是堆栈的典型方法。
getValueOf(“key”):
var value = dictionary[key];
addKeyAndValue(“key”“value”):
dictionary.Add( key, value );
删除(“密钥”)
dictionary.Remove( key );
使用linq: getKeyOf(“value”)
var key = dictionary.Where( pair => pair.Value == 10 )
.Select( pair => pair.Key ).FirstOrDefault();
答案 2 :(得分:1)
你确定需要一个堆叠吗?你所描述的内容听起来非常像Dictionary
集合。
堆栈是一种非常特殊的数据结构,通常不允许您按键值搜索 - 它是一个“先进先出”数据结构,不具备您想要的方法。
另一方面,字典具有这些搜索功能,并且其上的方法与您所描述的内容非常接近。
答案 3 :(得分:0)