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

如何统计List<IVehicle>列表中特定类型(如Car)对象的数量?

正确统计List中Car类型对象数量的方法

你之前的代码vehicles.Count(x => x == car)是在判断列表元素是否和某个特定car对象的引用完全一致,而非判断元素是否属于Car类型,这就是统计结果不正确的原因。

以下是几种正确的实现方式:

  • 用is关键字判断类型:

    int carCount = vehicles.Count(x => x is Car);
    

    这种方式会匹配所有Car类型及其子类的实例,写法简洁直观。

  • 用GetType()精确匹配类型:
    如果需要严格统计仅属于Car类型(不包含子类)的对象,可使用:

    int carCount = vehicles.Count(x => x.GetType() == typeof(Car));
    

    此方法只会统计类型完全等于Car的实例,不会包含继承自Car的子类对象。

  • 用OfType<T>方法筛选统计:
    LINQ的OfType<T>方法可直接筛选出指定类型的元素,再统计数量:

    int carCount = vehicles.OfType<Car>().Count();
    

    该方法逻辑和is关键字一致,会包含Car的子类实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:17:36