You need the lambda-expression here.
Lamba is a shorthand form for calling anonymous methods.
It comes from assigning anonymous methods as handlers for events:
Code:
SubmitButton.Click += delegate (object sender, EventArgs e)
{ MessageBox.Show("Click!") };
Here we have an anonymous method (i.e. method without a name) that will be called that Click-event fires.
Another way to write it is with lambdas:
Code:
SubmitButton.Click += (s, e) => MessageBox.Show("Click!");
"s" and "e" are parameters (object sender & EventArgs e); the compiler can infer them from the "Click"-event and does not need details.
"=>" - is the lambda that means "goes to". Parameters "s" and "e" go into this method. We can use "MessageBox(s.SomeProperty)" because "s" stands for incoming object.
"OrderByDescending()"-method expects a delegate Func<TSource, TKey> and writing a lambda-expression actually provides this TSource. (Func is a special built-in delegate in .NET)
It has nothing to do with ASP.NET MVC - it is the same for all LINQ queries.
If all that sounds rather confusing, you may either just ignore it, or dig up a book on C# and read about delegates, lambdas, extension methods and LINQ.