class Data {
    public int A { get; set; }
    public string Name { get; set; }
    public override string ToString()
    {
        return "A:"+A+",Name:"+Name;
    }
}
List<Data> datas = new List<Data>() {
    new Data() { A = 1,Name = "me"},
    new Data(){ A = 10,Name = "hello"},
    new Data(){ A = 5,Name = "world"}
};
var newData = from m in datas
        from n in datas
        where m.A > 5 && n.A == 1 select new{dataA = m,dataB = n};
              
var newData2 = from m in datas 
               join n in datas on m.A equals n.A 
               select new{dataA = m,dataB = n};
                
foreach (var data in newData) {
    Console.WriteLine(data);
}使用两个from,where条件来限制联合的两条数据
这里都是同一个,所以没有联合条件
一般为m.ID == n.UId之类的
select new{dataA = m,dataB = n} 表示newData里面的元素变为例如:
data.dataA.A , data.dataB.Name
第二个联合使用了join in equals 关键字