2012-03-07 269 views
4

比方说,我有对象的列表,像这样:.NET对象映射,分组对象

public class FlatModel 
{ 
    public string groupName { get; set; } 
    public decimal value1 { get; set; } 
    public decimal value2 { get; set; } 
    public decimal value3 { get; set; } 
} 

,我想将它们映射到下面的对象,通过分组基于组名

public class GroupedModel 
{ 
    public string groupName { get; set; } 
    public List<ModelValues> values { get; set; } 
} 

public class ModelValues 
{ 
    public decimal value1 { get; set; } 
    public decimal value2 { get; set; } 
    public decimal value3 { get; set; } 
} 

是否有直接的方法来使用Automapper,Value Injector或其他一些对象映射实用程序来执行此操作?

回答

1

它可以为你工作吗?

 var arr = new List<FlatModel>(); 

     var result = from p in arr 
        group p by p.groupName into g 
        select 
         new GroupedModel { 
          groupName = g.Key, 
          values = (from q in g 
               select 
                new ModelValues { 
                 value1 = q.value1, 
                 value2 = q.value2, 
                 value3 = q.value3 }).ToList() 
         }; 
+0

谢谢,这绝对是指向正确的方向。我没有非常广泛地使用Linq,但它似乎对这项任务非常有用。 – mystictheory 2012-03-07 07:36:45