IEnumerable<char> query = "How are you, friend.";
foreach(char vowel in "aeiou")
query = query.Where(c => c != vowel);
foreach (char c in query) Console.Write(c); //How are yo, friend.
结果中只有字母u被过滤了,咋一看,有没有吃一惊呢!但只要仔细一想就能知道原因:因为vowel定义在循环之外,所以每个lambda表达式都捕获了同一变量。当我们的query执行时,vowel的值是什么呢?不正是被过滤的字母u嘛。
上面是原文,我有点搞不懂为什么只有u被过滤了
自己做的人都没有理解,答案都是错的。。当然搞不懂了。最后的结果是: Hw r y,frnd.
表述的什么问题!都被你惊了——还以为就只有u被过滤。
当我们的query执行时,vowel的值是什么呢?——每个字符。
.....这个是原文,原文就是说只有u被过滤了,我是搞不懂为什么只有u被过滤了
@猝不及防: 有发文的功夫都不自己去试一下还搞什么技术。
@花飘水流兮: 昨天晚上太晚了,而且我看的也是博客园的教程系列,所以没试,认为是对的
答案是错误的,aeiou应该都被过滤掉了