To make a LINQ query that returns the second-highest number in a list of numbers, you can use the OrderByDescending operator to sort the list in descending order, the Skip operator to skip the first element, which is the highest number, and the Take(1) operator to take the next element, which is the second highest number.   Here's an example of how you could do this with a LINQ query:  List numbers = ... // list of numbers
var secondHighest = numbers.OrderByDescending(x => x).Skip(1).FirstOrDefault();  In this example, the list of numbers is put in descending order by using the OrderByDescending operator. The FirstOrDefault() operator is used to get the next element, which is the second highest number. The Skip(1) operator is used to skip the first element, which is the highest number.   If the list is empty, the query returns the type's default value, which for int is 0.   The query syntax is another way to write this query.  var secondHighest = (from num in numbers
orderby num descending
select num).Skip(1).FirstOrDefault();  In this example, the from clause is used to iterate over the numbers, and the orderby clause is used to put the numbers in descending order. The FirstOrDefault() operator is used to get the next element, which is the second highest number. The Skip(1) operator is used to skip the first element, which is the highest number.   In both cases, the second highest number from the list of numbers will be stored in the secondHighest variable.   In summary, one way to make a LINQ query that returns the second-highest number in a list of numbers is to sort the list in descending order using OrderByDescending, then use the Skip operator to skip the first element and the FirstOrDefault() operator to take the next element, which is the second-highest number. You could also use the orderby clause to sort the list in descending order, then use the Skip operator to skip the first item and the FirstOrDefault() operator to take the next item with the second highest number.