You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET嵌套For循环转LINQ:地址集合转换遇难题

VB.NET嵌套循环转LINQ:处理Person地址集合的方案

先指出原循环代码里的两处逻辑问题:

  1. 内层遍历地址的循环写错了,应该遍历personObject.Address而非object.Person.Address
  2. DTOObject.Person.Add(data)放在外层循环外,最终只会把最后一个personObject对应的data添加到集合,逻辑错误

以下是修正后的LINQ转换代码,直接在初始化DTOPerson时嵌套处理地址集合:

DTOObject.Person = New List(Of DTOPerson)()

If object.Person.Count > 0 Then
    DTOObject.Person.AddRange(
        From personObject In object.Person
        Select New DTOPerson() With {
            .FirstName = personObject.firstName,
            .Surname = personObject.surname,
            .Address = (
                From addr In personObject.Address
                Select New DTOPersonAddress() With {.ID = addr.id}
            ).ToList()
        }
    )
End If

关键说明:

  • 用嵌套LINQ查询将personObject.Address中的每个地址转换为DTOPersonAddress对象,通过.ToList()转为集合后直接赋值给DTOPerson的Address属性
  • 借助AddRange一次性完成所有转换后对象的添加,替代原循环的逐个添加逻辑
  • 修正了原循环的逻辑错误,确保每个Person对应的地址都被正确转换并关联

内容的提问来源于stack exchange,提问作者Aiden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 19:12:19