使用linq构建一个新对象

时间:2016-08-01 11:17:21

标签: c# .net linq

我有一个来自db的对象如下:

predict()$pred$avsed ^ 2

我要从 oldobject 构建新列表,每个 newobject 对象有四个属性:

asreml

所有这些信息都存在于oldobject中,但格式如下: Oldobject 包含2个对象:

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
   [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,

......等等。

每个数据都是动态的,“布局”也可能包含100个项目, OldObject 也可以包含100个项目。 如何在不使用forloop的情况下提取此信息,或者在性能方面是否可以按对象循环?

1 个答案:

答案 0 :(得分:1)

这应该适合你:

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();