Using C# LINQ - A Practical Overview

Previous: SelectMany Next: Combined Exercise #2

Combined Exercise #1

As we have already seen in some of the examples, LINQ methods can build on each other. Since many LINQ methods return an IEnumerable<T>, subsequent LINQ methods can be called on the results. For example:

IEnumerable<string> values = new List<string> { "fe", "fi", "fo", "fum" };
// Will return 12
int result = values
    .Select(word => $"{word}-{word}") // { "fe-fe", "fi-fi", ... }
    .Select(phrase => phrase.Length)

In this exercise, combine LINQ method calls together to determine if the second sequence passed into the TestForSquares() method contains the squares of the elements in the first sequence. It should return true if the two sequences have the same number of elements and each element in squares is equal to the square of the corresponding element in numbers.

Combined Exercise 1
using System.Collections.Generic;
using System.Linq;
namespace AllTogether1
public class FullExercise1
// The following method should return true if each element in the squares sequence
// is equal to the square of the corresponding element in the numbers sequence.
// Try to write the entire method using only LINQ method calls, and without writing
// any loops.
public static bool TestForSquares(IEnumerable<int> numbers, IEnumerable<int> squares)
return numbers
// .???().???() ... .???()
Create your playground on
This playground was created on, our hands-on, knowledge-sharing platform for developers.
Go to
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
Online Participants