Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 操作员'==';无法应用于类型为';int';和';字符串';错误_C#_Linq - Fatal编程技术网

C# 操作员'==';无法应用于类型为';int';和';字符串';错误

C# 操作员'==';无法应用于类型为';int';和';字符串';错误,c#,linq,C#,Linq,为什么我会在这段代码中看到前面提到的错误?该错误具体发生在t.TerritoryID==TerritoryID部分: [HttpPost] public ActionResult Add(EmployeeViewModel employee, string[] territories) { ModelState.Remove("territories"); if (ModelState.IsValid) { if (ter

为什么我会在这段代码中看到前面提到的错误?该错误具体发生在
t.TerritoryID==TerritoryID
部分:

[HttpPost]
public ActionResult Add(EmployeeViewModel employee, string[] territories)
{
        ModelState.Remove("territories");

        if (ModelState.IsValid)
        {
            if (territories != null)
            {
                employee.Territories = territories.Select(territoryID => repository.Territories.FirstOrDefault(t => t.TerritoryID == territoryID));
            }

            employee.EmployeeID = repository.CreateEmployee(employee);
        }

        return RedirectToAction("Index");
}

如果您想知道,
TerritoryID
是一个整数。对我如何纠正这个问题有什么建议吗?提前感谢。

Int和string是两种不同的类型,您无法直接比较它们。可以将int转换为字符串,也可以将int转换为字符串

territies
更改为int数组:
var territoriesInt=territies。选择(x=>int.Parse(x)).ToArray()
,然后使用该数组


上面的代码是字符串到int的转换。如果字符串不包含数字,则此操作可能失败。如果有人发送坏数据,我宁愿故意让它失败。如果将Territions字符串与
territoryID.ToString()进行比较,也可以采用相反的方法。首先将int转换为字符串或将字符串转换为int。因为
Territions
是一个字符串数组。
t=>t.territoryID.ToString()==territoryID