You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Lambda查询实现按性别分组并排序重型汽车名称

实现按性别分组筛选并排序重型汽车的方案

我来帮你调整Lambda查询代码,实现按性别分组、筛选重型汽车并对名称排序的需求。你的现有代码缺少分组逻辑,我们来补充完善:

修正后的完整代码

var result = m.Where(b => b.Cars != null && b.Cars.Any(t => t.Type.Contains("Heavy")))
              .GroupBy(owner => owner.Gender)
              .Select(group => new Result 
              {
                  Gender = group.Key,
                  Name = group.SelectMany(owner => owner.Cars.Where(car => car.Type.Contains("Heavy"))
                                                             .Select(car => car.Name))
                          .OrderBy(carName => carName)
                          .ToList()
              });

代码分步解释

  • 过滤有效记录:先用Where筛选出拥有汽车且至少有一辆是"Heavy"类型的车主,这样可以避免处理空汽车列表或者没有符合条件车辆的无效数据。
  • 按性别分组:通过GroupBy方法将车主按Gender字段分组,同一性别的车主会被归为一组,方便后续统一处理。
  • 提取并排序汽车名称:
    • 使用SelectMany将同一分组下所有车主的符合条件的汽车名称扁平化为一个集合(避免出现嵌套列表);
    • 调用OrderBy对汽车名称按字母顺序进行升序排序;
    • 最后将排序后的结果转为List<string>,赋值给Result对象的Name属性。

预期输出效果

按照你给出的示例数据,最终得到的result集合会包含两个Result对象:

  • Gender: "Male",Name: ["Ambassador", "Lamborghini", "Maruti"]
  • Gender: "Female",Name: ["Bugatti", "Maruti", "Scooty"]

内容的提问来源于stack exchange,提问作者somnath roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:40:18