假设我有一个包含以下字段的Person对象数据库:
class Person
{
public DateTime BirthDate { get; set; }
public string CountryOfBirth { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想使用一个查询(LINQ或其他一些C#代码)来搜索仅在(例如)USA出生birthDate的Persons,并返回Person最大值birthDate.如果Person在这个日期出生的人不止一个,那么它应该归还所有人.
这样做的方法是什么?
好吧,听起来你想要:
所以(假设属性名称已修复为遵循约定):
var query = db.People
.Where(p => p.CountryOfBirth == "USA")
.GroupBy(p => p.BirthDate)
.OrderByDescending(p => p.Key)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
null如果没有团体,这将返回,因为在美国没有出生的人.要改为返回一个空序列,如果有一个结果,你可以展平第一个结果:
var query = db.People
.Where(p => p.CountryOfBirth == "USA")
.GroupBy(p => p.BirthDate)
.OrderByDescending(p => p.Key)
.Take(1)
.SelectMany(p => p);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |