帮助我在C#中优先级堆栈

时间:2010-06-23 08:22:36

标签: c#

我想创建一个具有以下方法的堆栈:

getValueOf ("key")
getKeyOf ("value")
addKeyAndValue ("key" "value")
delete ("key")

任何人都可以帮助我,因为我是C sharp的新手

4 个答案:

答案 0 :(得分:3)

您需要检查Dictionary课程,或者如果您想要“优先”(已排序),则需要检查SortedList课程。

编辑:如果您需要自己实现堆栈。您需要检查ICollectionIEnumerableICloneable接口。

然而,如果符合您的需求,最好使用已经在Framework中退出的类。根据您的说明,您似乎需要DictionarySortedList

答案 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)

C#中有一个堆栈类,以下是使用它的快速指南:

http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=65

希望有所帮助。