首页 > 解决方案 > 合并多个列表在 LINQ 中分组时

问题描述

我有这个模型:

public class AudienceInfo
{
    public int Id { get; set; }
    public string Departments { get; set; }
    public List<CountOfDestination> CountOfDestinations { get; set; }
}

public sealed class CountOfDestination
{
    public string DestinationName { get; set; }
    public int? CountRoom { get; set; }
    public int? CountOfFiles { get; set; }
}

而数据库中的这张表。

public class AudienceInfo : IModelWithId
{
    public int Id { get; set; }

    ....

    public RoomPurpose RoomPurpose { get; set; }

    public List<AudienceInfo_File> Files { get; set; }
}

选择“部门”(条件)后,我得到一个数据列表。然后,我 GroupBy "RoomPurpose" 并为每一行获取 "CountRoom" = DestinationName。这部分工作正常。另外,我需要获取 CountOfFiles ...不知道该怎么做

   return dbAudInfo
               .Where(x => x.RightOfPreferentialUse.Id == Id)
               .Select(x => new AudienceInfo
               {
                   Departments = x.RightOfPreferentialUse.Name,
                   Date = date1,
                   CountOfDestinations = dbAudInfo
                        .GroupBy(z => new { z.RoomPurpose })
                        .Select(y => new CountOfDestination
                        {
                            DestinationName = y.Key.RoomPurpose.Name,
                            CountRoom = y.Count(z => z.RightOfPreferentialUse.Id == Id),
                            CountOfFiles = ?????????????????????????
                        }).ToList()
               }).FirstOrDefaultAsync();

如何将 LINQ 查询中的列表与 GroupBy 连接起来。

标签: asp.netlinq

解决方案


另外,我需要获取 CountOfFiles ...不知道该怎么做

利用:

CountOfFiles = y.ToList().First(a => a.Id == y.Id).Files.Count()

如何将 LINQ 查询中的列表与 GroupBy 连接起来。

你能详细说明吗?


推荐阅读