c# - 如何使用 Linq 通过嵌套列表的属性对对象列表进行排序?
问题描述
假设我有一个组列表。每个组都有一个人员列表。如何按年龄最小的人对组进行排序?
var groups = new List<Group>{groupA, groupB, groupC};
public class Group {
public string Name {get; set;}
public List<Person> Members {get; set;}
}
public class Person {
public string Name {get; set;}
public double Age {get; set;}
}
解决方案
您可以使用每个组的列表年龄的OrderBy
方法Min
Members
var groups = new List<Group>
{
new Group {Name = "group1", Members = new List<Person> {new Person {Age = 5}, new Person {Age = 2}}},
new Group {Name = "group2", Members = new List<Person> {new Person {Age = 3}, new Person {Age = 4}}},
new Group {Name = "group3", Members = new List<Person> {new Person {Age = 1}}}
};
var result = groups.OrderBy(g => g.Members.Min(m => m.Age));
在上面的示例中,它为您提供group3(最小Age
为 1)、group1(最小Age
为 2)、group2(最小Age
为 3)顺序
推荐阅读
- file - 批处理脚本不使用此代码输出文件
- php - woocomerce:状态完成后获取自定义产品输入字段的单个值
- javascript - 如何将参数从一个html页面传递到另一个页面
- c++ - 为什么我的 iFFT 图像带有镜像副本?
- matlab - 文件路径 MATLAB
- c++ - 如何从库路径自动编译源文件而不生成 .o、.a 和 .so 文件?
- python - 如何在不使用 Pandas 的情况下在 Python 中找到 52 周的高点
- amazon-web-services - 为什么我的 S3 生命周期策略没有生效?
- c# - 使用 Embeddinator-4000 在 Android 中无法访问函数
- c# - 如何使用自动 if 语句将数据插入数据库?