2012-12-12 4 views
1

J'ai une liste de produit (IList<Product>), avec toutes les données pré-remplies.Remplir une liste imbriquée à partir d'une liste imbriquée

Modèle: Product

public class Product 
{ 

    public int Id { get; set; } 

    public int ParentProductId { get; set; } 

    public string Code { get; set; } 

    public string Name { get; set; } 

    public IList<Product> Children { get; set; } 

} 

propriété Children sera de type IList<Product>, signifie qu'il est imbriqué, il peut contenir à nouveau les enfants jusqu'à n niveaux.

J'ai un autre modèle FilterModel.

Modèle: FilterModel

public class FilterModel 
{ 
    //// This is same as that of Product Code 
    public string Code { get; set; } 

    //// This is a combination of Products Name, Id and some static strings 
    public string FilterUrl { get; set; } 

    public IList<FilterModel> Children 
} 

qui a également une même structure imbriquée.

Je prévois d'insérer des données dans mon deuxième modèle (FilterModel) à partir du premier (Product). Est-ce possible de manière récursive?

+0

Lorsque vous avez écrit « possible d'une manière récursive » vous voulez dire que vous voulez une nouvelle copie de chaque enfant-produit? Ou en utilisant la même référence est OK? –

Répondre

1

essayez ceci:

FilterModel Transfer(Product product) 
{ 
    var fm = new FilterModel(); 
    fm.Code = product.Code; 
    fm.Children = new List<FilterModel>(); 

    foreach (var p in product.Children) 
    { 
     fm.Children.Add(Transfer(p)); 
    } 

    return fm; 
} 
+0

Merci qui a fonctionné. – HashCoder