LINQ - 从嵌套列表中获取值的总数并保存在父列表中[重复]
Posted
技术标签:
【中文标题】LINQ - 从嵌套列表中获取值的总数并保存在父列表中[重复]【英文标题】:LINQ - get total count of values from nested list and save inside the parent list [duplicate] 【发布时间】:2020-07-14 01:12:32 【问题描述】:我有一个视图模型
public class HouseReportMainModel
public int HouseId get; set;
public int DisplayOrder get; set;
public string HouseName get; set;
public string HouseColor get; set;
public int TotalStudentCount get; set;
public List<HouseReportViewModel> StudentList get; set;
我将使用 linq 获取学生列表,我需要获取内部列表的计数并需要在父视图模型中显示它
var houseReportDetails = _dbContext.Set<HouseStudentMapping>()
.AsNoTracking()
.Include(i=>i.StudentClassMap.Student)
.Include(i=>i.StudentClassMap.Class.Standard)
.Include(i=>i.House)
.Where(s => selectedClassIds.Contains(s.StudentClassMap.ClassId ?? 0) &&
selectedHouseIds.Contains(s.HouseId))
.GroupBy(s => s.HouseId)
.Select(s => new HouseReportMainModel()
HouseId = s.Key,
DisplayOrder = s.Select(c=>c.House.DisplayOrder).FirstOrDefault(),
HouseName = s.Select(c => c.House.Name).FirstOrDefault(),
HouseColor = s.Select(c => c.House.Color).FirstOrDefault(),
StudentList = s.Select(t => new HouseReportViewModel()
StudentClassMapId = t.StudentClassMapId,
RollNumber = t.StudentClassMap.RollNumber??0,
StudentName = t.StudentClassMap.Student.Name,
ClassName = t.StudentClassMap.Class.Standard.Name+" "+ t.StudentClassMap.Class.Name,
HouseId = t.HouseId,
HouseName = t.House.Name,
ClassId = t.StudentClassMap.ClassId??0,
StandardId = t.StudentClassMap.Class.StandardId
).ToList()
).ToList();
我需要TotalStudentCount = StudentList.Sum(x => x.Distinct().Count()
但是我将如何获得 linq 列表中的 TotalStudentCount
谁能帮帮我。
【问题讨论】:
你试过什么? @Roshmi 您的预期输出是一个对象而不是映射。所以不要使用.push
,而是尝试obj[ keyName ] = value
***.com/questions/26264956/… 这帮助我找到了结果谢谢@Rajesh
【参考方案1】:
试试这个
let value = [
text: 'Field0',value:'val' ,
text: 'Field1',value:'val1' ,
text: 'Field2',value:'val2' ,
text: 'Field3',value:'val3' ,
text: 'Field4',value:'val4'
]
let newvalue =
value.map(item => newvalue [item.text] = item.value)
console.log(newvalue )
【讨论】:
这不是 OP 所要求的。仔细查看所需的输出 这和OP的代码输出一样 你想要值数组? 我需要像 res =field0,:val0, field1:val1, field2:val2 这样的结果 我已经更新了代码以上是关于LINQ - 从嵌套列表中获取值的总数并保存在父列表中[重复]的主要内容,如果未能解决你的问题,请参考以下文章