Challenge - 5 Problems
OrderBy Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
What is the output of this OrderBy example?
Consider the following C# code that sorts a list of integers using OrderBy. What will be printed to the console?
C Sharp (C#)
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { List<int> numbers = new() { 5, 3, 8, 1 }; var sorted = numbers.OrderBy(n => n); foreach(var num in sorted) { Console.Write(num + " "); } } }
Attempts:
2 left
💡 Hint
OrderBy sorts elements in ascending order by default.
✗ Incorrect
OrderBy sorts the list from smallest to largest. The original list is {5,3,8,1}, so sorted ascending is {1,3,5,8}.
❓ Predict Output
intermediate2:00remaining
What is the output when sorting strings by length?
This code sorts a list of strings by their length using OrderBy. What will be printed?
C Sharp (C#)
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { List<string> words = new() { "apple", "dog", "banana", "cat" }; var sorted = words.OrderBy(w => w.Length); foreach(var w in sorted) { Console.Write(w + " "); } } }
Attempts:
2 left
💡 Hint
OrderBy sorts by the key selector, here the string length.
✗ Incorrect
Strings sorted by length ascending: "dog" (3), "cat" (3), "apple" (5), "banana" (6). Since "dog" and "cat" have same length, their original order is preserved.
❓ Predict Output
advanced2:00remaining
What is the output of this OrderByDescending with complex objects?
Given this code that sorts a list of Person objects by Age descending, what will be printed?
C Sharp (C#)
using System; using System.Collections.Generic; using System.Linq; record Person(string Name, int Age); class Program { static void Main() { List<Person> people = new() { new("Alice", 30), new("Bob", 25), new("Charlie", 35) }; var sorted = people.OrderByDescending(p => p.Age); foreach(var p in sorted) { Console.Write(p.Name + " "); } } }
Attempts:
2 left
💡 Hint
OrderByDescending sorts from largest to smallest by the key.
✗ Incorrect
Ages are 30, 25, 35. Descending order is 35 (Charlie), 30 (Alice), 25 (Bob).
❓ Predict Output
advanced2:00remaining
What is the output of this chained OrderBy and ThenBy?
This code sorts a list of tuples first by the first item ascending, then by the second item descending. What is printed?
C Sharp (C#)
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { var list = new List<(int, int)>{ (1, 2), (1, 3), (2, 1), (2, 2) }; var sorted = list.OrderBy(x => x.Item1).ThenByDescending(x => x.Item2); foreach(var t in sorted) { Console.Write($"({t.Item1},{t.Item2}) "); } } }
Attempts:
2 left
💡 Hint
OrderBy sorts by first item ascending, ThenByDescending sorts by second item descending within groups.
✗ Incorrect
Group by first item: 1 and 2. For 1: (1,3) then (1,2). For 2: (2,2) then (2,1).
🧠 Conceptual
expert2:00remaining
Which option causes a runtime error when sorting with OrderBy?
Given a list of objects, which code snippet will cause a runtime exception when using OrderBy in C#?
Attempts:
2 left
💡 Hint
Accessing a property that does not exist will cause an error at runtime.
✗ Incorrect
Option C tries to access a property that does not exist on the objects, causing a runtime exception (usually a RuntimeBinderException or similar). Other options use valid properties or methods.