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

如何用C# Linq筛选包含指定itemApplicationId的Item列表?

筛选包含指定子元素的Item列表

核心实现(Java 8+ Stream API)

最简洁清晰的实现方式是利用Java Stream API的过滤与匹配能力,通过链式调用完成需求:

import java.util.List;
import java.util.stream.Collectors;

// 假设已有Item和ItemApplication实体类,且包含对应getter方法
List<Item> filteredItems = items.stream()
    .filter(item -> item.getItemApplications().stream()
        .anyMatch(app -> app.getItemApplicationId() == 5))
    .collect(Collectors.toList());

代码说明

  • items.stream():将原始Item列表转为流,开启流式操作
  • filter():对流中每个Item做条件筛选,仅保留符合要求的元素
    • 内层item.getItemApplications().stream().anyMatch(...):检查当前Item的子列表中,是否存在任意一个itemApplicationId等于5的元素,只要有一个符合就返回true
  • collect(Collectors.toList()):将过滤后的流转换回List<Item>类型,得到最终结果

示例验证

针对你提供的输入数据:

{"items": [
    {"itemId" : 1, "itemApplications": [{"itemApplicationId": 7,"name": "application7"},{"itemApplicationId": 4,"name": "application4"}]},
    {"itemId" : 2, "itemApplications": [{"itemApplicationId": 3,"name": "application3"},{"itemApplicationId": 5,"name": "application5"}]}
]}

执行上述代码后,会精准筛选出itemId为2的Item对象,与你期望的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:35:19