JOIN in LINQ

// Create Two classes.
class State
{
public int StateID { get; set; }
public string Name { get; set; }
}

class City
{
public int StateID { get; set; }
public string name { get; set; }
}



// Now consume them as below...
var states = new State[]
{
new State{StateID = 5, Name = "Andhra"},
new State{StateID = 6, Name = "Maharashtra"},
new State{StateID = 7, Name = "Karnataka"},
new State{StateID = 8, Name = "Gujarat"}
};

// Example orders.
var cities = new City[]
{
new City{StateID = 8, name = "surat"},
new City{StateID = 5, name = "hyderabad"},
new City{StateID = 7, name = "bangalore"},
new City{StateID = 6, name = "Mumbai"}
};

// Join on the StateID properties.
var query = from c in states
join o in cities on c.StateID equals o.StateID
select( new { aa= c.Name,bb= o.name });

// Display joined groups.
foreach (var group in query)
{
Console.WriteLine("{0} has {1}", group.aa, group.bb);
}