gpt4 book ai didi

c# - 将两个 IEnumerable 查询合并为一个

转载 作者:太空狗 更新时间:2023-10-30 00:10:20 24 4
gpt4 key购买 nike

我需要帮助来尝试组合两个 IEnumerable 查询。这两个查询单独工作都很好,但我需要找到一种方法将它们结合起来。

一个查询返回的结果包含当前用户可以看到的所有实体书。

第二个查询返回当前用户可以看到的所有数字图书。

真的,我只需要一个查询返回当前用户可以看到的实体书和电子书。

问题是我需要使用不同的方法来检查每种图书类型的用户权限,而且我无法更改该部分。

谢谢!

var user = AllUsers.Current;

var BookFetchResults = rows.Select(r => new SearchResult(r))
.Where(t => t.BookType == "Physical")
.Select(r => r)
.Where(e => e.CanViewPhysical(e.PhysicalBookResult, user) );
return Ok(results);

var BookFetchResults = rows.Select(r => new SearchResult(r))
.Where(t => t.BookType == "Digital")
.Select(r => r)
.Where(e => e.CanViewDigital(e.DigitalBookResult, user) );
return Ok(results);

最佳答案

您可以在查询 Where 语句中执行所有这些操作:

var BookFetchResults = rows.Select(r => new SearchResult(r))
.Where(t => (t.BookType == "Physical" && t.CanViewPhysical(e.PhysicalBookResult, user)) ||
(t.BookType == "Digital" && t.CanViewDigital(t.DigitalBookResult, user));

您是否意识到 .Select(r => r) 行什么都不做?所有这些行都返回与输入相同的值。如果您要更改类型,则只需进行选择,就像您在 .Select(r => new SearchResult(r)) 中所做的那样。

关于c# - 将两个 IEnumerable 查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27532593/

24 4 0