返回c#字典中值(类)满足条件的键

本文关键字:满足 条件 字典 返回 | 更新日期: 2023-09-27 18:16:36

给定以下代码,返回字典中年龄最小的键的最佳方法是什么?

 public class Person
    {
        public int age {get; set;}
        public string name {get; set;}
        public Person(int Age, string Name)
        {
            age = Age;
            name = Name;
        }
    }

    public Dictionary<int, Person> people = new Dictionary<int, Person>();
    public int idNumber = // Key of person with lowest age inside Dictionary ?????

我研究过优先队列,但它似乎都是多余的。我觉得一定有一种简单的方式告诉我年龄最小的地方有钥匙

返回c#字典中值(类)满足条件的键

您可以找到最低年龄,然后找到具有该年龄的人(或具有该年龄的第一个人,可能有多个):

int lowestAge = people.Min(kvp => kvp.Value.age);
int id = people.First(kvp => kvp.Value.age == lowestAge).Key;

或者更简单,直接使用OrderBy并获取第一个:

int id = people.OrderBy(kvp => kvp.Value.age).First().Key;
var key = people.Aggregate((a, b) => a.Value.age < b.Value.age ? a : b).Key;