Below is your solution.
var strCollection1 = new[] {
new{number=12, name="abc"},
new{number=13, name="abc, cdf"},
new{number=14, name="tre"},
new{number=15, name="iuj"}
};
var strCollection2 = new[] {
new{number=12, name="abc"},
new{number=13, name="abc, cdf"},
};
var joined = from x1 in strCollection1
join x2 in strCollection2
on new { x1.name, x1.number } equals
new { x2.name, x2.number }
select x1;
foreach (var item in joined)
{
Console.WriteLine("{number=" + item.number + ",name=" + item.name + "}");
}