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

CS0019错误:C#运算符'&&'无法用于string类型操作数及LINQ查询求助

解决CS0019错误并修正LINQ查询

首先,咱们先理清这个CS0019错误的根源:你在Select方法里误用了&&逻辑与运算符——&&只能用来判断布尔值的逻辑关系,但b.Longitude和b.Latitude都是string(或数值)类型,自然会触发“运算符无法应用于该类型操作数”的错误。

你的核心需求是获取Latitude和Longitude的值,原查询的问题在于用错了语法——&&不是用来提取多个字段的,这里给你几种针对性的修正方案:

方案1:返回匿名类型列表(最快捷的临时方案)

如果只是临时使用这两个字段,不需要额外定义类,直接用匿名类型投影即可:

var x = db.Home.Where(b => b.HomeID == id)
               .Select(b => new { b.Longitude, b.Latitude })
               .ToList();

得到的x是匿名类型的列表,你可以通过item.Longitude、item.Latitude直接访问对应的值。

方案2:返回自定义DTO/实体类列表(适合复用场景)

如果需要在多个地方复用这个坐标数据,建议定义一个专门的类,比如:

public class Coordinate
{
    // 类型根据你的实际数据调整,比如数值类型可改为double/decimal
    public string Longitude { get; set; }
    public string Latitude { get; set; }
}

然后修改LINQ查询,将结果投影到这个自定义类:

var x = db.Home.Where(b => b.HomeID == id)
               .Select(b => new Coordinate 
               { 
                   Longitude = b.Longitude, 
                   Latitude = b.Latitude 
               })
               .ToList();

此时x是List<Coordinate>,类型明确,方便后续业务逻辑复用。

额外补充:若只需单个字段的列表

如果分别需要所有符合条件的经度或纬度值,可以单独投影:

// 获取所有符合条件的经度列表
var longitudes = db.Home.Where(b => b.HomeID == id)
                        .Select(b => b.Longitude)
                        .ToList();

// 获取所有符合条件的纬度列表
var latitudes = db.Home.Where(b => b.HomeID == id)
                       .Select(b => b.Latitude)
                       .ToList();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:49:28