使用 linq 生成一个新对象
本文关键字:一个 对象 新对象 linq 使用 | 更新日期: 2023-09-27 17:59:32
我有一个来自数据库的对象,如下所示:
Var oldobject = context.db.getValues()// Do db operations and get values.
我有一个从旧对象构建新列表,每个新对象对象都有四个属性:
Public class newClass
{
Public int id {get;set;}
Public string description {get;set;}
Public string variation {get;set;}
Public string size {get;set;}
}
所有这些信息都存在于 oldobject 中,但格式不同,例如:旧对象包含 2 个对象:
Oldobject
[0]
Type null
>Menu->
Name “sample”
-> Layouts count =4
->[0]
Size “1”
->One more collection count=4
->[0]
->Id 1
Variation “Variance”
Description “Test”
[1]
I am expecting the newobject contains all the iterated data from the oldobject where,
">大小"是"多一个集合">对象的通用字段,所以我的 List<newClass> list
有
{
Size:1
Id:1
Variation:”Variance”
Description: “Test”
},
{
Size:1
Id:2
Variation:”Variance2”
Description: “Test2”
}
。等等。
每个数据都是动态的,">布局"也可以包含 100 个项目,OldObject 也可以包含 100 个项目。如何在不使用 forloop 的情况下提取此信息,或者是否可以在性能方面逐个对象循环?
这应该适合您:
List<newClass> result = oldObject.Menu.Layouts
.SelectMany(l => l.OneOrMoreCollection
.Select(c => new newClass
{
id = c.Id,
variation = c.Variation,
description = c.Description,
size = l.Size
}))
.ToList();