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