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

如何从List<Skachkist>中筛选包含指定HrsID的Uchastniks的对象

解决方案:筛选包含指定HrsID的Uchastniks的Skachkist对象

问题出在你用了SelectMany——这个方法会把所有嵌套的Uchastniks集合平铺成一个单独的序列,所以你最后拿到的是符合条件的Uchastniks对象,而不是包含它们的Skachkist。

要实现你的需求,应该直接对Skachkis集合使用Where,并在条件里用Any()判断当前Skachkist的Uchastniks中是否存在符合要求的对象:

var selectedSkachkists = Skachkis.Where(skachkist => 
    skachkist.Uchastniks.Any(uchastnik => uchastnik.HrsID == selectedID));

逻辑说明:

  • Where遍历每一个Skachkist对象
  • Any()会检查当前Skachkist的Uchastniks集合中,是否至少有一个Uchastnik的HrsID等于selectedID
  • 最终返回的是所有满足该条件的Skachkist对象集合

如果你需要同时获取Skachkist以及它里面符合条件的Uchastniks,可以用投影来包装结果:

var selectedWithMatchingUchastniks = Skachkis
    .Where(sk => sk.Uchastniks.Any(u => u.HrsID == selectedID))
    .Select(sk => new {
        TargetSkachkist = sk,
        MatchingUchastniks = sk.Uchastniks.Where(u => u.HrsID == selectedID)
    });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:27:31