Я пытался следовать, а затем распространять старый пример, Linq query list contains a list, но это не сработало для меня.Запрос LINQ, чтобы узнать, содержатся ли все элементы в списке 2 в списке 1
class Part
{
public int id { get; set; }
public string name { get; set; }
}
class Program
{
static void Main(string[] args)
{
{
List<int> L1 = new List<int> { 1, 2, 3, 4, 5, 6 };
List<int> L2 = new List<int> { 4, 3 };
bool t = L2.Where(p => L2.All(q => L1.Contains(q))).Any();
}
{
List<Part> L1 = new List<Part> { new Part { id = 1 }, new Part { id = 2 }, new Part { id = 3 }, new Part { id = 4 } };
List<Part> L2 = new List<Part> { new Part { id = 3 }, new Part { id = 4 } };
bool u = L2.Where(p => L2.All(q => L1.Contains(q.id))).Any();
}
}
}
Первый тест работает для меня, но не соответствует предыдущему коду, который я нашел. Мой второй тест имеет синтаксическую ошибку в «L1.Contains (q.id)». Я в тупике.
Мой первый вопрос о StackOverflow и ответ <10 минут. Это фантастика. Я использовал «bool u = L2.Where (p => L2.All (q => L1.Any (e => e.id == q.id))). Any()", и я думаю, что он делает то, что я необходимость. – DustyB
bool u = L2.All (q => L1.Any (e => e.id == q.id)); лучше. Мой «где» не нужен. – DustyB