SelectMany C# with Example



SelectMany C# with Example

The SelectMany linq method 'flattens' an IEnumerable> into an IEnumerable. All of the T 
elements within the IEnumerable instances contained in the source IEnumerable will be combined into a single 
IEnumerable. 
var words = new [] { "a,b,c", "d,e", "f" }; 
var splitAndCombine = words.SelectMany(x => x.Split(',')); 
// returns { "a", "b", "c", "d", "e", "f" } 
If you use a selector function which turns input elements into sequences, the result will be the elements of those 
sequences returned one by one. 
Note that, unlike SELECT(), the number of elements in the output doesn't need to be the same as were in the input. 
More real-world example 
class School 
{ 
public Student[] Students { get; set; } 
} 
class Student 
{ 
public string Name { get; set; } 
} 
var schools = new [] { 
new School(){ Students = new [] { new Student { Name="Bob"}, new Student { Name="Jack"} }}, 
new School(){ Students = new [] { new Student { Name="Jim"}, new Student { Name="John"} }} 
}; 
var allStudents = schools.SelectMany(s=> s.Students); 
foreach(var student in allStudents) 
{ 
Console.WriteLine(student.Name); 
} 
Output: 
Bob 
 

Jack 
Jim 
John 
Live Demo on .NET Fiddle 

0 Comment's

Comment Form