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

强类型List调用Where方法时出现CS0103错误,求解决方法

解决Linq过滤时的CS0103错误

嘿,我来帮你搞定这个CS0103的问题!首先得明确:这个错误的意思是编译器找不到你代码里引用的Miasto这个名称,大概率是你的TestowaKlasaDlaLinq类定义出了问题,咱们一步步排查:

1. 优先检查TestowaKlasaDlaLinq类的属性定义

C#是大小写敏感的语言,而且只有公共(public)属性才能在类外部被访问。你得确保你的类里确实有一个拼写完全一致的Miasto属性,比如:

public class TestowaKlasaDlaLinq
{
    // 必须确保这些属性都是public,且名称拼写(包括大小写)完全匹配
    public string Czas { get; set; }
    public string Co { get; set; }
    public string Miasto { get; set; } // 重点看这里!不能写成miasto、Miast或者其他拼写
    public string Miejsce { get; set; }
}

如果你的类里把Miasto写成了小写miasto,或者属性是private的,编译器就会报CS0103,因为它找不到你在Where里引用的x.Miasto。

2. 验证Join语句的赋值是否正确

虽然你的Join代码能正常运行,但还是可以确认一下:b.address.city确实是一个有效的字符串属性,而且你在创建TestowaKlasaDlaLinq实例时,确实给Miasto赋了值。不过这一步一般不会导致CS0103,更多是后续逻辑问题,但确认一下没坏处。

3. 优化你的过滤逻辑(可选)

另外,你写的x.Miasto.Equals("Gdań...")看起来是字符串被截断了,实际代码里应该用完整的城市名比如"Gdańsk"。而且建议加上StringComparison来避免大小写匹配问题,比如:

var onlyGdansk = linqlambda.Where(x => x.Miasto.Equals("Gdańsk", StringComparison.OrdinalIgnoreCase));

这样不管城市名是大写还是小写,都能正确匹配。

总结

CS0103错误的核心就是编译器找不到你引用的成员,所以优先检查TestowaKlasaDlaLinq类的Miasto属性:

  • 拼写(包括大小写)是否完全一致
  • 属性的访问修饰符是不是public

只要这两点没问题,你的过滤代码就能正常运行啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:15:18