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

如何通过subCategories过滤产品数据记录

按子类别过滤产品的解决方案

错误原因

subCategories是集合类型(对应JSON里的数组),不是单个对象,直接访问.Name会触发编译错误——集合本身没有Name属性,你需要检查集合内是否存在名称匹配的子类别项。

正确的扩展方法实现

使用Any()方法判断子类别集合中是否存在符合条件的元素,修改后的代码如下:

public static IQueryable<Product> FilterSubCategory(this IQueryable<Product> products, string name)
{
    if (!string.IsNullOrEmpty(name))
    {
        return products.Where(e => e.Category.subCategories.Any(sc => sc.Name == name));
    }
    return products;
}

代码说明

  • Any()方法会遍历subCategories集合,只要集合中有任意一个子类别名称与传入的name匹配,就保留该产品。
  • 改用!string.IsNullOrEmpty(name)做判断,比单纯的name != null更严谨,能过滤掉空字符串的无效请求。

额外建议

可以把方法名改为FilterSubCategory,和原有的FilterCategory区分开,语义更明确,避免混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:35:13