我正在尝试编写一个Linq表达式,用于检查对象列表中的任何元素是否与谓词匹配。
protected override void ValidateRulesBeforeDelete(List<object> deleteRecords)
{
base.ValidateRulesBeforeDelete(deleteRecords);
var defaultProductStatus = GetDefaultProductStatus();
if (deleteRecords.Any(x => x.Equals(defaultProductStatus.Id)))
{
throw new CustomException(PageResource.ProductStatusViewModel_CannotDeleteDefaultProduct);
}
}
public class ProductStatusViewModel
{
public int Id { get; set; }
}
上面的代码工作正常。但是,最近我在 CLR通过C#中读到了关于装箱/拆箱的问题,我怀疑是,要应用上面的谓词,编译器框会将整数转换为列表中每个元素的对象吗?
我100%确定列表中包含整数,并将其设置为对象。
那么有什么方法可以重新编写上面的代码,以避免装箱/拆箱,如果发生任何事情?