How to find the entry corresponding to the elements of the array without having to loop, and using a lambda expression?

Hello, a question such as not using a loop to find all items in the database correspond to values from the array.
Here's an example of an array, you need to find all entries corresponding to elements of the array from the table with books.
int[] bookTypes = {1, 2, 6, 8};

You can certainly use a list, adding items as they are discovered simply by using a cycle that runs through the array elements and prints the values. But I'm interested in can one request to make sample of writing a lambda expression. Thanks in advance for your answers

Got a query like this:
var books = db.Books.Where(a=> bookTypes.Contains(a.TypeId));
September 19th 19 at 12:07
3 answers
September 19th 19 at 12:09
Use the Linq extension methods Where and Contains. To search for an element in an array you can use the IndexOf method.
September 19th 19 at 12:11
It is possible, the query expression depends on what will go where, and what search terms.
September 19th 19 at 12:13
Here, for example, to find all books of a type that corresponds to the values of the arrays. The Internet is not found examples on a similar case, to choose one element just
var books = dc.Books.Where(a => a.Status == true && a.TypeId==bookTypes[i]);

How to write a lambda expression to find not one item at a time and once for all?
If it helps:
var books = dc.Books.Where(a => a.Status == true && bookTypes.Equals(a.TypeId));

Find more questions by tags .NETLambda expressionsEntity FrameworkC#