2013-07-04 3 views
19

Можно ли добавить if -значение внутри LINQ ForEach позвонить?Может ли LINQ ForEach иметь оператор if?

sequence.Where(x => x.Name.ToString().Equals("Apple")) 
     .ToList() 
     .ForEach(/* If statement here */); 
+1

Вопрос не ясен – zerkms

+8

Не существует метода LINQ 'ForEach'. Это метод «Список». –

+0

Что бы вы хотели поместить в 'if', который нельзя использовать в качестве предиката в' Where'? –

ответ

3

Да, он принимает лямбда-выражения, так что вы можете поместить любое допустимое выражение C# там

+0

Я бы не сказал _any _... Есть некоторые конструкции, которые выражение API не может представлять. –

+2

Ой, простите, мой комментарий здесь не применим. Мы создаем делегата здесь, а не выражение. IIRC, те же ограничения не влияют на делегатов, любая конструкция может быть использована. –

33

вы можете сделать следующее ...

List.Where(x => x.Name.ToString().Equals("Apple").ToList() 
    .ForEach(x => { if(x.Name == ""){}}); 
22

Да, если-заявление обычно используется внутри ForEach, как показано ниже:

sequence.Where(x => x.Name.ToString().Equals("Apple")) 
    .ToList() 
    .ForEach(x => 
    { 
     if(someCondition) 
     { 
     // Do some stuff here. 
     } 
    }); 
Смежные вопросы