如果我从不同的linq Query获得两个结果IQueryable并且我想将它们合并在一起并返回一个作为结果,如何对此?例如,如果:
var q1 = (IQueryable<Person>).....;
var q2 = (IQueryable<Person>).....;
Run Code Online (Sandbox Code Playgroud)
如何将q1和q2合并在一起得到结果
var q = (IQueryable<Person>)q1.Union(q2);
Run Code Online (Sandbox Code Playgroud)
Yur*_*ich 25
你拥有它,q1.Union(q2).该联盟是在System.Linq的命名空间可查询.
Adr*_*der 16
您可以尝试Concat方法
像这样的东西
int[] i1 = new int[] { 1, 2, 3 };
int[] i2 = new int[] { 3, 4 };
//returns 5 values
var i3 = i1.AsQueryable().Concat(i2.AsQueryable());
//returns 4 values
var i4 = i1.AsQueryable().Union(i2.AsQueryable());
Run Code Online (Sandbox Code Playgroud)
Union只会给你DISTINCT值,Concat会给你UNION ALL.