LINQ联合查询
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 关键字


首页 我的博客
粤ICP备17103704号