class Program
{
static void Main(string[] args)
{
var listTest1 = new List<Test1>
{
new Test1{Key="1",Name="1"},
new Test1{Key="2",Name="2"},
new Test1{Key="3",Name="3"}
};
var listTest2 = new List<Test2>
{
new Test2{SubKey="sub1",SubName="sub1",MainKey="1",},
new Test2{SubKey="sub2",SubName="sub2",MainKey="2"},
new Test2{SubKey="sub3",SubName="sub3",MainKey="2"}
};
var result = from t1 in listTest1
join t2 in listTest2
on t1.Key equals t2.MainKey
select new TestResult(t1, t2);
result = result.ToList();
Console.WriteLine(result);
Console.ReadKey();
}
}
public class Test1
{
public string Key { get; set; }
public string Name { get; set; }
}
public class Test2
{
public string SubKey { get; set; }
public string SubName { get; set; }
public string MainKey { get; set; }
}
public class TestResult
{
public string Name { get; set; }
public string SubName { get; set; }
public TestResult(Test1 t1, Test2 t2)
{
this.Name = t1.Name;
this.SubName = t2.SubName;
}
}