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