关于c#:字典中的第一项

First item in dictionary

我有一个按降序排序的字典,每个字符串(键)是一个术语,int(值)是它的计数。我怎么得到第一个计数?因为它指的是最大计数(频率)……事先谢谢。

1
2
3
Just to inform some of whom commented that the dictionary<string,int> will change its
rank. Be sure, if you are grouping  the dictionary by its count, there is no problem  
with the order . Always the dictionary will come with highest count at first.


"按降序排序的词典"是什么意思?根据定义,Dictionary是未排序的!你是说SortedDictionary吗?如果是,您可以使用:

1
var firstCount = sortedDictionary.First().Value;


你不能依靠一个Dictionary来维持秩序(当然,它是一个OrderedDictionary除外)。如果您使用的是OrderedDictionary,则可以使用其索引器:

1
var maximumCount = myDictionary[0];

1
var maximumCount = myDictionary.First().Value;

编辑:如果您想要整个词典中的最高计数,您也可以使用以下方法:

1
var maximumCount = myDictionary.Max(entry => entry.Value);


我相信你用的字典类型不对。用OrderedDictionary<>代替。它将为您提供有保证的订单和索引器。

1
2
3
4
5
OrderedDictionary list = new OrderedDictionary();

// add a bunch of items

int firstValue = (int)list[0];

orderedDictionary的唯一缺点是它不是通用的,但是下面介绍如何使它成为通用的。http://www.codeproject.com/articles/18615/ordereddictionary-t-a-generic-implementation-of-io


下面呢

1
yourDictionary.First().Value

记住,当你增加更多的值时,它很可能会改变顺序。

MSDN警告

http://msdn.microsoft.com/en-us/library/ekcfxy3x(v=vs.100).aspx