What is SelectMany in LINQ?

Language Integrated Query (LINQ) can be divided into two parts. The first part, "Language Integrated," means that LINQ is part of a programming language, such as C# or VB syntax. These can be shipped with .NET and have LINQ capabilities. The second part, "Query," explains that LINQ is used for querying data. The data can be of different types. In short, LINQ is a programming language that is used to query data.

The SelectMany method in LINQ

The SelectMany method is a LINQ operator used to flatten the resulting collections by projecting each element of collections, data source, or sequence into a single collection. It is often used when working with complex data structures or performing a one-to-many mapping operation.

Syntax

IEnumerable<TResult> SelectMany<TSource, TResult>(
this IEnumerable<TSource> source,
Func<TSource, IEnumerable<TResult>> selector
);
Syntax for the SelectMany method in LINQ

Parameters

  • source: This is the input collection that needs to be flattened.

  • selector: This is a projection function that defines the transformation to be applied to each element in the source collection before flattening it.

  • TResult: This is a generic type parameter. It represents the type of elements in the resulting sequence after the projection and flattening operation.

Example

using System;
using System.Collections.Generic;
using System.Linq;
namespace LINQ_selectmany
{
class selectmany_example
{
static void Main(string[] args)
{
List<string> list_name =new List<string>(){"Educative", "Answer" };
IEnumerable<char> methodSyntax = list_name.SelectMany(x => x);
foreach(char i in methodSyntax)
{
Console.Write(i + " ");
}
Console.ReadKey();
}
}
}

Explanation

  • Line 11: We create a list of strings.

  • Line 12: We use the SelectMany method to collect all the collection of elements that need to be flattened.

  • Lines 13–18: We use the for loop to print the collection.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved