C#λ极限,包括

C#λ极限,包括,c#,lambda,limit,take,C#,Lambda,Limit,Take,我有这段代码 return Folder.GetAllWithInclude(x => x.SubFolder).Take(5); 此代码返回5个文件夹项。我要做的是将子文件夹限制为5,而不是将文件夹限制为5。我试过以下方法 return Folder.GetAllWithInclude(x => x.SubFolder.Take(5)); 但这似乎并不奏效 我可能缺少正确的语法 提前非常感谢 Include(Where Expression)没有方法。如果您使用的是Includ

我有这段代码

return Folder.GetAllWithInclude(x => x.SubFolder).Take(5);
此代码返回5个文件夹项。我要做的是将子文件夹限制为5,而不是将文件夹限制为5。我试过以下方法

return Folder.GetAllWithInclude(x => x.SubFolder.Take(5));
但这似乎并不奏效

我可能缺少正确的语法


提前非常感谢

Include(Where Expression)没有方法。如果您使用的是Include,您将始终加载所有记录

更新

您可以使用投影来解决此问题

Folder.Select(F => new
        {
            FolderName = F.FolderName,
            SubFolders = F.SubFolders.Take(5)
        }).ToList().Select(F => new Folder()
        {
            FolderName = F.FolderName,
            SubFolders = F.SubFolders
        };

在不知道
GetAllWithInclude
准确返回什么的情况下,可能会有更好的选择,但理论上应该是这样的:
returnfolder.GetAllWithInclude(x=>x.SubFolder)。选择many(s=>s)。选择(5)
Hi@Me.Name,但我仍然必须返回完整的文件夹记录及其5个子文件夹项。啊,对了。如果第一个文件夹包含3个项目,第二个文件夹包含5个项目,它应该返回一个包含3个项目的文件夹和一个包含2个项目的文件夹?在
GetAllWithInclude
方法中,这似乎更容易实现。这是一个自定义方法还是我不知道的某个库方法?哦,很抱歉,这是一个自定义方法,假设我们有2个文件夹,#1文件夹包含6个子文件夹,#2文件夹包含2个子文件夹,那么代码应该返回2个文件夹,其中#1文件夹只包含5个子文件夹,而#2文件夹仍然包含2个子文件夹。没问题,但是你能在你的帖子里包括这个方法吗?也许该方法本身可以通过一个可选参数进行扩展,以限制最大子文件夹数(或一个动态标准)。如果它不能在GetAllWithInclude方法中实现,那么替代方法将取决于GetAllWithInclude返回的对象的外观。但是我们总是可以使用.Take()来限制它,对吗?我不知道如何限制子类返回。@JackFrother您也不能将Take()用于include