asp.net - 合并多个列表在 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 连接起来。
解决方案
另外,我需要获取 CountOfFiles ...不知道该怎么做
利用:
CountOfFiles = y.ToList().First(a => a.Id == y.Id).Files.Count()
如何将 LINQ 查询中的列表与 GroupBy 连接起来。
你能详细说明吗?