gpt4 book ai didi

c# - IQueryables 列表的并集

转载 作者:行者123 更新时间:2023-12-02 04:47:55 25 4
gpt4 key购买 nike

与:

var q1 = (IQueryable<T>).....;
var q2 = (IQueryable<T>).....;
var q3 = (IQueryable<T>).....;

var qList = new List<IQueryable<T>>{q1, q2, q3};

我想这样做:

var q = q1.Union(q2).Union(q3);

但使用 qList 而不是使用 q1q2q3。我尝试使用 qList.SelectMany 但行为不同(可查询是对数据库的查询,而 SelectMany 对每个可查询进行查询,而不仅仅是一个查询)。

最佳答案

您可以使用 Aggregate 扩展方法:

var q = qList.Aggregate((x, y) => x.Union(y));

或关注 Thomas Levesque 的 suggestion :

var q = qList.Aggregate(Queryable.Union);

这将从 qList 中选取第一项,将它与第二项结合,将结果与第三项结合,等等 qList 中的每一项。 .请注意,这实际上并不涉及评估任何 IQueryable<T>的,只是构建一个新的 IQueryable<T>代表其他人的联合。

关于c# - IQueryables 列表的并集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19437067/

25 4 0