在 Linq-SQL 查询中添加不确定数量的 AND?

Add undetermined number of AND on Linq-SQL Query?

假设我有以下功能...

private List<QueryObject> ReturnSQLData (DateTime d1, DateTime d2, string[] arrayOfNames)
{
    var results = (from a in _context.Names
                   where (a.CreatedOn >= d1 && a.CreatedOn <d2)

                   select new QueryObject
                   {
                       FirstName = a.Name
                       LastName = a.LastName
                   }).ToList();

    return results;
}

我怎样才能继续创建一个 Linq 查询,其中我有一些东西?

private List<QueryObject> ReturnSQLData (DateTime d1, DateTime d2, string[] arrayOfNames)
{
    var results = (from a in _context.Names
                   where (a.CreatedOn >= d1 && a.CreatedOn <d2)
                   && (arrayOfNames[0].Equals("abc") || arrayOfNames[1].Equals("cde")
                   select new QueryObject
                   {
                       FirstName = a.Name
                       LastName = a.LastName
                   }).ToList();

    return results;
}

请注意,在实际执行代码之前,我并不知道字符串[] 的大小。我如何才能在我的 linq 查询中添加这条语句?

> && (arrayOfNames[0].Equals("abc") || arrayOfNames[1].Equals("cde") ||
> ... || arrayOfNames[n].Equals("cde"))

可以吗?

顺便说一句。我是 运行 这个 ASP.NET 5 MVC6 EF7 解决方案,以防它有帮助:)

谢谢!

你能做到吗:

&& arrayOfNames.Contains("cde")