如何从字典中获取单个值给定一个属于Value类型的属性
本文关键字:一个 属于 Value 属性 类型 字典 获取 单个值 | 更新日期: 2023-09-27 18:06:59
假设我有这样一个字典:
Dictionary<Guid, Person> people = new Dictionary<Guid, Person>();
假设它填充了一些数据。我们也说Person
有Ssn
的性质。我想用Ssn = socialSecurityNum
返回Person in people,其中socialSecurityNum
是某个值。这是我能想到的最好的办法:
public Person GetPerson(int socialSecurityNum)
{
IEnumerable<Person> persons = people.Values.Where(p => p.SSN == socialSecurityNum);
foreach (Person person in persons)
{
return person;
}
return null;
}
我知道每个人都有不同的Ssn
,所以我只是返回列表中第一个值(因为列表只有一个值)。否则返回null。
我不喜欢这个解决方案的事情是,我必须从linq查询中获得一个列表,而不是单个值。是否有一个linq查询可以从字典中获得单个值?
用FirstOrDefault
代替Where
return people.Values.FirstOrDefault(p => p.SSN == socialSecurityNum);