首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从字典中获取最大值?

如何从字典中获取最大值?
EN

Stack Overflow用户
提问于 2012-04-24 10:02:59
回答 7查看 92.6K关注 0票数 45

我有过

代码语言:javascript
复制
Dictionary<Guid, DateTime> d = new Dictionary<Guid, DateTime>();

如何获取具有MAX值的Guid

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-04-24 10:06:29

由于这是公认的答案,我将尝试涵盖这个问题的每一个可能的含义:

代码语言:javascript
复制
var dict = new Dictionary<string, int> { { "b", 3 }, { "a", 4 } };

// greatest key
var maxKey = dict.Keys.Max(); // "b"

// greatest value
var maxValue = dict.Values.Max(); // 4

// key of the greatest value
// 4 is the greatest value, and its key is "a", so "a" is the answer.
var keyOfMaxValue = dict.Aggregate((x, y) => x.Value > y.Value ? x : y).Key; // "a"

注意:该问题的密钥类型为System.Guid。问“什么是最好的GUID”可能没有意义,因为它们只是想成为唯一的值,而不是代表任何可排序的概念。尽管如此,上面的代码可以与任何支持>运算符的类型一起工作,为了简洁起见,这里选择stringint

票数 99
EN

Stack Overflow用户

发布于 2013-09-19 22:22:31

这很好用。它将返回最大日期的GUID。

代码语言:javascript
复制
Dictionary<Guid, DateTime> d = new Dictionary<Guid, DateTime>(); 
var guidForMaxDate = d.FirstOrDefault(x => x.Value == d.Values.Max()).Key;
票数 47
EN

Stack Overflow用户

发布于 2012-04-24 10:11:50

代码语言:javascript
复制
            var maxGuid = Guid.Empty;
            var maxDateTime = DateTime.MinValue;
            foreach (var kvp in d)
            {
                if (kvp.Value > maxDateTime)
                {
                    maxGuid = kvp.Key;
                    maxDateTime = kvp.Value;
                }
            }
            Console.WriteLine("Guid of max date is: " + maxGuid.ToString());
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10290838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档