These are completely undocumented.
LINQ to Objects:
Specialized enumerable:
The new implementation recognizes queries that apply Where and/or Select to arrays or List<T> and fold pipelines of multiple enumerable objects into single specialized enumerables.
According to Dinesh Kulkari at Microsoft this enhancement:
….produces substantial improvement in base overhead of common LINQ to Objects queries (at times 30+%).
Cast<T> breaking change
This is a bug fix and a breaking change. Note: this post
Cast<T> was not correctly behaving in all scenarios do it was silently fixed for SP1. This does break you code in some situations!
If you’ve been using Cast<T> for example to perform generic collection type conversions well that was not so good. Here are the two assumptions that we used to get away with not following:
- The elements in the object based collections need some additional step (specifically an un-box or a reference conversion)
- The starting point is only non-generic types (think ICollection, IEnumerable, etc) you call Cast<T> on.
So although the fix is a breaking one, it does move Cast<T> to expected and specified behavior (as it worked in beta 2).
Indeed if this breaks your code your code was already silently broken (another possible reason for the silence).
Expect more InvalidCastExceptions (if you start to wonder why).
Adapted from Dinesh.Kulkarni





[...] Undocumented Linq! .NET 3.5 SP1 Gold Forgot to Mention these Critical Changes that might Break your … [...]
Pingback by Linq to Gac : Use Linq to Power Query your Gac via this C# Bridge to Fusion « team domain.dot.net — 09.20.08 @ 8:11 pm
[...] Undocumented Linq! .NET 3.5 SP1 Gold Forgot to Mention these Critical Changes that might Break your … [...]
Pingback by Linq to Gac : Use Linq to Power Query your Gac via this C# Bridge to Fusion - Damon Wilder Carr — 09.20.08 @ 9:36 pm
[...] Undocumented Linq! .NET 3.5 SP1 Gold Forgot to Mention these Critical Changes that might Break your … [...]
Pingback by SharePoint 2007 MOSS Update – New BDC Web Man « team domain.dot.net — 10.02.08 @ 9:52 pm
[...] Undocumented Linq! .NET 3.5 SP1 Gold Forgot to Mention these Critical Changes that might Break your … [...]
Pingback by Use Linq to Query your Global Assembly Cache Safely using Fusion - Damon Wilder Carr — 10.03.08 @ 2:35 am
[...] Undocumented Linq! .NET 3.5 SP1 Gold Forgot to Mention these Critical Changes that might Break your … [...]
Pingback by Visual Studio 2010 Gets Serious about Visual Metrics – Screen Shots Here Look Promising but still no NDepend…. « team domain.dot.net — 10.13.08 @ 9:08 pm