2012-03-07 270 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