Несколько операторов Where в Лямбда-выражениях

Большинство разработчиков думает, что у них есть некоторые уникальные полномочия, которые никто больше не имеет, и поэтому они могут создать систему, которая уникальна в некотором роде.

99% из них неправы.

, Каковы возможности, что Ваша компания имеет сотрудников в 1%?

49
задан nneonneo 9 March 2013 в 07:11
поделиться

5 ответов

Может быть

x => x.Lists.Include(l => l.Title)
     .Where(l => l.Title != String.Empty && l.InternalName != String.Empty)

или

x => x.Lists.Include(l => l.Title)
     .Where(l => l.Title != String.Empty)
     .Where(l => l.InternalName != String.Empty)

Если вы посмотрите на Где реализация , вы увидите, что она принимает Func (T, bool) ; это означает:

  • T - ваш тип IEnumerable
  • bool означает, что он должен возвращать логическое значение

Итак, когда вы делаете

.Where(l => l.InternalName != String.Empty)
//     ^                   ^---------- boolean part
//     |------------------------------ "T" part
106
ответ дан 7 November 2019 в 11:26
поделиться

Лямбда, передаваемая в , где может включать любой нормальный код C #, например, оператор && :

.Where(l => l.Title != string.Empty && l.InternalName != string.Empty)
13
ответ дан 7 November 2019 в 11:26
поделиться

Вы можете включить это в том же операторе where с оператором && ...

x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty 
    && l.InternalName != String.Empty)

Вы можете использовать любой из операторов сравнения (подумайте об этом как о выполнении оператора if), например ...

List<Int32> nums = new List<int>();

nums.Add(3);
nums.Add(10);
nums.Add(5);

var results = nums.Where(x => x == 3 || x == 10);

... вернет 3 и 10.

5
ответ дан 7 November 2019 в 11:26
поделиться
x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty).Where(l => l.Internal NAme != String.Empty)

или

x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty && l.Internal NAme != String.Empty)
2
ответ дан 7 November 2019 в 11:26
поделиться

Может быть

x=> x.Lists.Include(l => l.Title)
    .Where(l => l.Title != string.Empty)
    .Where(l => l.InternalName != string.Empty)

?

Вы, вероятно, также можете поместить его в то же предложение where:

x=> x.Lists.Include(l => l.Title)
    .Where(l => l.Title != string.Empty && l.InternalName != string.Empty)
3
ответ дан 7 November 2019 в 11:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: