Simple linq

CSharp · Console

/Program.cs

using System;
using System.Linq;
// Group Peoples list based on Language.
public class Language{
	public int LanguageId {get; set;}
	public string LanguageName {get; set;}	
}

public class Persons{
	public int Id {get; set;}
	public string Name {get; set;}
	public int LanguageId {get; set;}
}
public class Simple {
  public static void Main() {
	  
	  Language[] lang = new Language[]
	  {
		  new Language{LanguageId = 1, LanguageName = "Telugu"},
		  new Language{LanguageId = 2, LanguageName = "Engilsh"},
		  new Language{LanguageId = 3, LanguageName = "Hindi"}
	  };
	  
	  Persons[] persons = new Persons[]
	  {
		  new Persons{Id = 1, Name = "Vijay", LanguageId = 1},
		  new Persons{Id = 2, Name = "Sonia", LanguageId = 2},
		  new Persons{Id = 3, Name = "Kumar", LanguageId = 2},
		  new Persons{Id = 4, Name = "Deepika", LanguageId = 1}
	  };
	  
	  var personsList = from lan in lang join pr in persons on lan.LanguageId equals pr.LanguageId into ps 
		                                                            select new {Key = lan.LanguageName, 
																			    Persons = ps};
	  foreach(var item in personsList)
	  {
		  Console.WriteLine("People who speack {0}", item.Key);
		  
		  foreach(var li in item.Persons)
		  {
			  Console.WriteLine(li.Name);
		  }
	  }
  }
}
;