Take a look for example at the accepted answer here Which method performs better: .Any() vs .Count() > 0?. Now I wonder if LINQ functions (e.g. Last, FirstOrDefault) are completely naive and all they do is enumerating/checking IEnumerable or they check what data structure is beneath (at least for basic collections like Array, List) and the execution is optimized for such structures?
            Asked
            
        
        
            Active
            
        
            Viewed 151 times
        
    -1
            
            
         
    
    
        Community
        
- 1
- 1
 
    
    
        greenoldman
        
- 16,895
- 26
- 119
- 185
- 
                    3To save you *wondering*, http://referencesource.microsoft.com/#System.Core/Microsoft/Scripting/Utils/CollectionExtensions.cs,172d0a44454c0d97 – Christian Phillips May 24 '15 at 09:34
- 
                    If you have read the accepted answer there you know it does so at least some of the time. And sometimes not. – H H May 24 '15 at 09:35
- 
                    @christiandev, thank you, weird those extensions are marked as `internal` though. – greenoldman May 24 '15 at 09:45
- 
                    @HenkHolterman, of course I am not interested in particular case, but general rule. But it seems, the rule is "there is no rule" :-). – greenoldman May 24 '15 at 09:46
1 Answers
1
            They do where it makes sense, typically not for the actual type but for an interface (for example they check for IList when it helps speedup)
 
    
    
        Ronan Thibaudau
        
- 3,413
- 3
- 29
- 78