我刚学linq,遇到点问题,希望高手解答。下面是我用linqpad中的例子的疑问。
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也可以和第一个显示的一样,这是为什么呢?不清楚究竟为什么两个结果不一样?坐等高手!