Skip to main content

LINQ Sort Operators - IEnumerable and IOrderedEnumerable

Consider following example
var query = Process.GetProcessess().
.OrderBy(p => p.WorkingSet64)
.ThenOrderBy(p => p.ThreadCount)

In this case query is of type IOrderedEnumerable

Hence you cannot user a Where Operation like this

query = query.Where(p => p.ProcessName.Length < 10

You will get a compile error that you cannot IEnumerable to IOrderedEnumerable

However if you add Where operator on first query, it will return IEnumaerable

e.g

var query = Process.GetProcessess().
.OrderBy(p => p.WorkingSet64)
.ThenOrderBy(p => p.ThreadCount)
.Where(p => p.ProcessName.Length < 10)

Comments

Popular posts from this blog

Why there is semicolon at the start of a JavaScript function?

Very often while reviewing the code for my team, I will come across a semicolon at the start of JavaScript function as show below ; (function () { 'use strict'; ...and I often wondered what purpose it served. Guess what. It is an insurance to make sure your script works fine when all other scripts are merged together;  The leading ; in front of immediately-invoked function expressions (iffe) is there to prevent errors when appending the file during concatenation to a file containing an expression not properly terminated with a ;. So there you go. Now you know what that little semicolon is doing there in your code.

What is Event Sourcing?

If you scratching your head and wondering what is Event Sourcing, this is a very good article to start. https://www.erikheemskerk.nl/event-sourcing-awesome-powerful-different/ I couldn't have explained it any better.