2016-07-13 2 views
3

У меня есть этот псевдо объектLinq Синтаксис Any()

list<ListOfCars>{ 
    list<ListOfParts> 
} 

я в настоящее время этот запрос

ListOfCars.Where(x => x.ListofParts.Any(y => y.PartIsDeleted == false)); 

На моем расследовании, она возвращает что-то, если по крайней мере один элемент удовлетворяет условию в Any(y => y.PartIsDeleted == false).

Мой вопрос: что является синтаксис для чего-то вроде этого

SELECT * FROM ListOfCars cars WHERE cars.ListOfParts.PartIsDeleted = false 
+0

'ListOfParts' список. Вы все равно должны использовать агрегатную функцию типа 'Any' или' All' – Tommy

+0

да, поэтому я использовал Any(), но кажется, что она ничего не возвращает, если ни один элемент не удовлетворяет условию внутри Any() – user3770093

+0

'Any' означает по крайней мере, одного, удовлетворяющего условию. – Tommy

ответ

3

Есть 3 простых комбинаций в использовании Any и All.

  1. Любой
  2. Все
  3. None

быть кристально чистым, который вы хотите.


По меньшей мере один из ListofParts не удаляется.

ListOfCars.Where(x => x.ListofParts.Any(y => y.PartIsDeleted == false)); 

Все ListofParts не удаляются

ListOfCars.Where(x => x.ListofParts.All(y => y.PartIsDeleted == false)); 

Ни один из ListofParts удален

ListOfCars.Where(x => x.ListofParts.Any(y => y.PartIsDeleted) == false); 
+0

Я думаю, что вы правы, даже ваш код такой же, как и плакат, и он говорит, что у него проблемы – MichaelMao

+0

Я думаю, что третий может просто работать. – user3770093

+0

Привет, Томми, третий сделал! но могу ли я попросить одолжение и вы можете объяснить, почему я не вижу разницы между Any (y => y.PartIsDeleted == false) и Any (y => y.PartIsDeleted) == false – user3770093

Смежные вопросы