从 table 中获取与数组中的值匹配的所有值?

Get all the values from the table that match values in an array?

我有一个这样的数组

string[] Reportable = { "1", "3", "5" };

我的数据库中有一个 table 产品,其中有一列 PartNumber,我可以像这样获取所有 partNumbers,例如值为 2。

var result = db.Products.ToList().Where(product => product.PartNumber == 2);

但我想从数据库中获取与数组 Reportable 中的值匹配的所有值。例如,如果我的 table 看起来像这样

ID   Name   PartNumber
1    Name1  1
2    Name2  1
3    Name3  2
4    Name4  3
5    Name5  4
6    Name3  5

我的查询结果应该是 ID 为 1、2、4、6 的行,因为我的数组中没有数字 2 和 4。

编辑

我正在尝试获取 Reportable 数组中以数字开头的所有 PartNumbers,而不仅仅是完全匹配。如果我的数组中有数字 20,则查询中的有效数字将是例如 2010、20221、20 和 20111,但不是例如 25111、10333、11000。我找到了扩展方法 StartsWith() 但我没有得到它工作。

您可以这样使用 Contains

var result = 
     db.Products.Where(product => 
          Reportable.Any(r => product.PartNumber.StartsWith(r))
      ).ToList();