Linq 延迟执行问题
IEnumerable<char> query = "期望中的结果";
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');
new string (query.ToArray()).Dump ("所有元音都被过滤.");
query = "不是期望的结果";
foreach (char vowel in "aeiou")
query = query.Where (c => c != vowel);
new string (query.ToArray()).Dump ("只有u被过滤了");
不知道延迟查询是怎么回事,我知道ToList()可以取消延迟查询。而且在foreach里添加一个变量替换vowel也可以和第一个显示的一样,这是为什么呢?不清楚究竟为什么两个结果不一样?query = query.Where (c => c != vowel);为什么这个query 变量不会存每次过滤后的结果呢?坐等高手!
------解决方案--------------------