在构建 ASP.NET-MVC 网站时,我试图在我的网站上实现 EDIT 页面,但我遇到了一些困难,特别是在我的控制器中。错误就在这个类中,指向ID:
List<T>.Contains(T)
,您需要解析T
对象,该对象是GestaoAlertas
对象到您的addresses
(List<GestaoAlertas>
类型)。
因此,您会收到以下错误,因为它是与
int
不匹配的类型
无法从 int 转换为“hdsportal.GestaoAlertas”
对于此行:
GestaoAlertas _teste = addresses.Contains(ID);
并且
List<T>.Contains(T)
返回布尔结果。
public bool Contains (T item);
判断某个元素是否在List中。
假设:
addresses
包含 GestaoAlertas
条记录您可以使用以下任一 LINQ 方法通过
GestaoAlertas
从 addresses
获取 ID
元素:
先决条件:
导入
System.Linq
命名空间。
using System.Linq;
解决方案1:Enumerable.SingleOrDefault
返回序列中的单个特定元素,如果未找到该元素,则返回默认值。
注意:如果输入序列包含多个元素,则会抛出
InvalidOperationException
。适合用于唯一标识符,例如 ID。
GestaoAlertas _teste = addresses.SingleOrDefault(x => x.ID == ID);
解决方案2:Enumerable.Single
返回序列中的单个特定元素。
注意:如果返回
ArgumentNullException
,则会抛出null
。
GestaoAlertas _teste = addresses.Single(x => x.ID == ID);
解决方案 3:Enumerable.FirstOrDefault
返回序列的第一个元素,如果未找到元素,则返回默认值。
GestaoAlertas _teste = addresses.FirstOrDefault(x => x.ID == ID);
解决方案 4:Enumerable.First
返回序列的第一个元素。
注意:如果返回
ArgumentNullException
,则会抛出null
。
GestaoAlertas _teste = addresses.First(x => x.ID == ID);