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

无法将运算符'!='应用于'Student'和'int'类型操作数的问题

问题原因与解决方案

错误根源

FirstOrDefault方法的返回值是匹配条件的Student对象(如果没有匹配项则返回null,因为Student是引用类型),而你试图将这个对象和int类型的-1做相等判断,两种类型不兼容,所以编译报错。不管你用var声明还是手动指定类型,只要逻辑是拿Student实例和int值比较,错误就会存在。

解决方案

根据你的需求,有两种正确的实现方式:

方式1:直接操作找到的Student对象(推荐)

如果只需要更新找到的学生信息,直接判断对象是否存在即可:

// 获取匹配RollNo的Student对象
var targetStudent = studentList.FirstOrDefault(s => s.RollNo == targetRollNo);

// 判断对象是否存在(非null即找到)
if (targetStudent != null)
{
    // 执行更新操作
    targetStudent.Name = "Updated Name";
    targetStudent.Age = 22;
    // 其他字段更新...
}

方式2:先获取元素索引再更新

如果你需要通过列表索引来操作元素,可以改用FindIndex方法(返回int类型的索引,无匹配项时返回-1):

// 获取匹配RollNo的元素索引
int studentIndex = studentList.FindIndex(s => s.RollNo == targetRollNo);

// 判断索引是否有效
if (studentIndex != -1)
{
    // 通过索引获取对象并更新
    studentList[studentIndex].Name = "Updated Name";
    studentList[studentIndex].Age = 22;
    // 其他字段更新...
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:52:36