using System.Collections.Generic;
public static void Main()
<LanguageId>1</LanguageId>
<Description>Lorem Ipsum</Description>
<LanguageId>3</LanguageId>
<Description>Lorem Ipsum</Description>
<LanguageId>2</LanguageId>
<Description>Lorem Ipsum</Description>
var xmlDoc = XDocument.Parse(xmlString);
var listoflanguagesIds = new List<int> { 1, 2 };
var listofgenresIds = new List<int> { 1, 2 };
var listofbooktypesIds = new List<int> { 1, 2 };
.Where(x => (listofgenresIds.Intersect(x.Element("Genres").Value.Split(',').Select(m => Convert.ToInt32(m))).Any())
&& (listoflanguagesIds.Contains(Convert.ToInt32(x.Element("LanguageId").Value)))
&& (listofbooktypesIds.Contains(Convert.ToInt32(x.Element("BookType").Value))))
Console.WriteLine(String.Join(", ", result.Select(m => m.Element("Title").Value).ToArray()));