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

如何检查C#类的字符串属性中是否包含指定字符串列表元素?

解决字符串属性是否包含列表所有元素的问题

首先得帮你理清逻辑:你要验证的是单个Class_A实例的definition字符串是否包含checkingList里的每一个元素,但你之前的代码犯了几个关键错误——比如把单个对象当成集合来用LINQ的Select/Where方法,逻辑方向也搞反了。

正确的实现方式

这里给你几种简洁可靠的写法:

1. 用LINQ的All方法(最推荐)

All方法会检查列表里的所有元素是否都满足「被definition包含」这个条件,一行代码就能搞定:

bool success = checkingList.All(item => car.definition.Contains(item));

2. 手动遍历检查(适合新手理解逻辑)

如果想更直观地看到每一步的验证过程,可以用循环逐个检查:

bool success = true;
foreach (var checkItem in checkingList)
{
    if (!car.definition.Contains(checkItem))
    {
        success = false;
        break; // 只要有一个元素不匹配,直接终止循环
    }
}

3. 忽略大小写的扩展(可选)

如果你的场景需要忽略大小写(比如"3000CC"和"3000cc"都算匹配),可以给Contains方法加上字符串比较参数:

bool success = checkingList.All(item => 
    car.definition.Contains(item, StringComparison.OrdinalIgnoreCase));

为什么你之前的代码行不通?

给你拆解下错误点:

  • car.Select(...):car是单个Class_A对象,不是集合(比如List<Class_A>),所以根本没有Select这个LINQ方法
  • p.Where(o => ...):同样的问题,单个对象不能用Where——Where是用来过滤集合元素的
  • ForEach.Contains:ForEach是List<T>的遍历执行方法,不是字符串的属性/方法,这个写法完全不符合语法逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:58:32