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 关键字