【发布时间】:2016-04-14 07:53:03
【问题描述】:
如果字典中有超过 1 个,我如何从字典中获取超过 1 个的最小值/最大值?我知道您必须转换 .ToList 才能使用 min/max,但是当我这样做时,它只会给我它遇到的第一个满足 min/max 要求的值。
class Program
{
Dictionary<string, int> myDictionary = new Dictionary<string, int>();
static void Main(string[] args)
{
Program minMaxAge = new Program();
minMaxAge.MinMaxAge();
Console.ReadLine();
}
public Program()
{
myDictionary.Add("Darius", 35);
myDictionary.Add("Caitlin", 25);
myDictionary.Add("Xin", 55);
myDictionary.Add("Alistar", 25);
}
public void MinMaxAge()
{
// Have to convert to list or array in order to get min/max
var ageRange = myDictionary.ToList();
// Created easier to read Keys and Values
var minAge = ageRange.Min(myDictionary => myDictionary.Value);
var minName = myDictionary.FirstOrDefault(x => x.Value == minAge).Key;
var maxAge = ageRange.Max(myDictionary => myDictionary.Value);
var maxName = myDictionary.FirstOrDefault(x => x.Value == maxAge).Key;
Console.WriteLine("The youngest age is {0} and that is {1}.", minAge, minName);
Console.WriteLine("The youngest age is {0} and that is {1}.", maxAge, maxName);
}
}
【问题讨论】:
-
以
int的形式获取最小年龄,并使用它从字典中进行选择。重复最大年龄。
标签: c# list dictionary max min