C# 词典中的第一项

C# 词典中的第一项,c#,c#-4.0,C#,C# 4.0,我有一个按降序排序的字典。每个字符串(键)是一个术语,int(值)是它的计数。我如何得到第一次计数?因为它指的是最大计数(频率)。。。。。。。提前谢谢 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 probl

我有一个按降序排序的字典。每个字符串(键)是一个术语,int(值)是它的计数。我如何得到第一次计数?因为它指的是最大计数(频率)。。。。。。。提前谢谢

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.
只是通知一些评论说词典将更改其名称的人
等级请确定,如果您是根据字典的计数对其进行分组,则没有问题
按命令。字典总是一开始就有最高的价值。

你所说的“字典按降序排序”是什么意思?根据定义,
字典
是未排序的!你是说
SortedDictionary
?如果是,您可以使用:

var firstCount = sortedDictionary.First().Value;
下面的呢

yourDictionary.First().Value
请记住,当您添加更多值时,很可能会改变顺序

MSDN对此发出警告


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

var maximumCount = myDictionary[0];

编辑:如果您希望在整个字典中获得最高计数,也可以使用以下方法:

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

我相信你用错了字典的类型。改用
OrderedDictionary
。它将为您提供有保证的订单和索引器

OrderedDictionary list = new OrderedDictionary();

// add a bunch of items

int firstValue = (int)list[0];

OrderedDictionary的唯一缺点是它不是泛型的,但这里介绍了如何使它成为泛型的

dict.First()
?!您可能希望使用一个替代字典,因为字典是哈希表。它们没有分类。给我们看一些代码。@Tim Schmelter你的意思是Dict.value。。。。对吗?@steaven,即使它是哈希表,但我的dic是排序的。@Qaesar你的字典是如何排序的?您是否希望获得具有最高值的行(即按值排序,而不是按键排序)?SortedDictionary不支持降序或按值排序(我认为这里就是这种情况)。@Chris,它支持。我确信这一点。啊。。。通过提供自己的比较器。是的,那也行。这意味着一个人也可以按值排序。但我的字典总是排在第一位,我认为没什么错。我的字典在世界上总是名列前茅first@Qaesar-字典集合的顺序不保证与添加项时的顺序相同。这看起来可能仅仅是因为它现在正在工作,但在生产中它可能无法产生正确的结果。我希望你不是在写股票行情或任何类型的金融产品。哈哈。。。不,这不是一种金融产品。但请相信我,这不是问题,因为我一次返回dic的所有值。@波茨,你是对的,但我已经在数组[int]中为每个返回的dic设置了每个最大计数。谢谢你的通知。
OrderedDictionary list = new OrderedDictionary();

// add a bunch of items

int firstValue = (int)list[0];