первое заявление:Почему эти линейные выходы различны?
IEnumerable<char> query = "Not what you might expect";
query = query.Where (c => c != 'a');
query = query.Where (c => c != 'e');
query = query.Where (c => c != 'i');
query = query.Where (c => c != 'o');
query = query.Where (c => c != 'u');
Выход String.Join("", query)
: "Nt wht y mght xpct"
второе утверждение:
query = "Not what you might expect";
foreach (char vowel in "aeiou")
query = query.Where (c => c != vowel);
Выход String.Join("", query)
: "Not what yo might expect"
Результаты этих заявлений различны. Может ли кто-нибудь объяснить, почему?
Какой результат вы получаете? – Default
Результаты этого будут зависеть от того, на какую версию .NET вы нацеливаетесь - какая версия это против? – goric
Действительно ли это, как ваш код структурирован? Значение «vowel» должно быть отменено во втором примере, иначе оно будет просто исполнено как '! = 'U'' 5 раз. –