簡単な内部結合

var product = new[]{
    new { Id = 1, name = "item1" },
    new { Id = 2, name = "item2" },
    new { Id = 3, name = "item3" },
    new { Id = 5, name = "item5" },
};
var price = new[] {
    new { Id = 1, price = 100 },
    new { Id = 2, price = 200 },
    new { Id = 3, price = 300 },
    new { Id = 4, price = 400 },
};

var query = product
    .Join(
        price,
        x => x.Id,
        y => y.Id,
        (x, y) => new { Name = x.name, Price = y.price }
    );

foreach (var v in query)
{
    Console.WriteLine(string.Format("{0} : ${1}", v.Name, v.Price));
}

出力

item1 : $100
item2 : $200
item3 : $300

Idが一致しているデータのみが取得される。

http://blogs.yahoo.co.jp/dk521123/17905755.html