Skip to content

Instantly share code, notes, and snippets.

@johnmmoss
Created January 10, 2020 08:24
Show Gist options
  • Save johnmmoss/df69d52982a73cb812bf3a7de49305c6 to your computer and use it in GitHub Desktop.
Save johnmmoss/df69d52982a73cb812bf3a7de49305c6 to your computer and use it in GitHub Desktop.
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Running Select Many Sample...");
IEnumerable<Person> people = new List<Person>()
{
new Person()
{
Name = "Wilma", PhoneNumbers = new List<PhoneNumber>()
{
new PhoneNumber() { Number = "777"},
new PhoneNumber() { Number = "888"},
new PhoneNumber() { Number = "999"}
}
},
new Person()
{
Name = "Bill", PhoneNumbers = new List<PhoneNumber>()
{
new PhoneNumber() { Number = "0191111111"}
}
},
new Person()
{
Name = "Fred", PhoneNumbers = new List<PhoneNumber>()
{
new PhoneNumber() { Number = "0131762475"},
new PhoneNumber() { Number = "0789123456"}
}
}
};
Console.WriteLine("Select Many PhoneNumbers:");
var allPhoneNumbers = people.SelectMany(p => p.PhoneNumbers);
foreach (var phoneNumber in allPhoneNumbers)
{
Console.WriteLine(phoneNumber.Number);
}
Console.WriteLine("Select Many With parent:");
var directory = people.SelectMany(p => p.PhoneNumbers,
(parent, child) => new { parent.Name, child.Number });
foreach( var item in directory)
{
Console.WriteLine($"{item.Name}:{item.Number}");
}
Console.WriteLine("Done!");
Console.ReadLine();
}
}
public class PhoneNumber
{
public string Number { get; set; }
}
public class Person
{
public IEnumerable<PhoneNumber> PhoneNumbers { get; set; }
public string Name { get; set; }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment