在 Int32 列表上使用 Linq 的 Contains 方法时,获取“您无法从 'int?' 转换为 'int'”

本文关键字:int 您无法从 转换 列表 Int32 Linq 获取 方法 Contains | 更新日期: 2023-09-27 17:56:44

问题是我有一个 Int32 列表,我需要查看另一个列表的元素是否在第一个列表中。

这是我的实际代码:

var b = ML_Contratos.Where(m => m.Borrado == false && m.Idproyecto == 492)
                    .Select(m=> m.Idcontrato)
                    .ToList();
var lista = ML_AdyDeds.Where(a => b.Contains(a.Idcontrato) && a.Autorizado == false)
                      .Select(a => a.Idcontrato)
                      .ToList();

我遇到的错误是:

"你不能从'int?'转换为'int'"

有没有办法做到这一点?

在 Int32 列表上使用 Linq 的 Contains 方法时,获取“您无法从 'int?' 转换为 'int'”

作为将

可为空的整数转换为整数的替代方法,您可以在整数集合上调用.Cast<int?>()以将它们转换为可为空的整数。