0
votes

Comment ajouter une méthode d'extension à la liste de l'objet personnalisé pour les convertir dans une nouvelle liste

Je veux être capable de créer une méthode d'extension pour convertir une liste d'un type à une liste d'un autre type.

 IEnumerable<Entity> EntityList = EntityData.GetAll();
 IEnumerable<ViewModel> = EntityList.ToViewModel();

c#

3 commentaires

Utilisez un mappeur comme automapper


Pourquoi ne pas utiliser myList.Cast (). Tolist () ?


@HIMBROMBEERE: Pourquoi vous pensez qu'il peut simplement lancer de type x pour taper y?


3 Réponses :


1
votes

Vous pouvez écrire votre propre méthode d'extension xxx

puis que vous puissiez utiliser entitylist.tovievismodel ()


0 commentaires

0
votes

Je l'ai compris. Tout ce que je devais faire était de créer une classe statique avec des méthodes statiques à l'intérieur qui utilise le mot-clé "Ceci" pour obtenir le paramètre de l'objet de votre référencement.

Par exemple: P>

 public static class Mapper
 {
     public static IEnumerable<ViewModel> ToViewModelList(this IEnumerable<Entity> entities)
     {
          return entities.Select(ToViewModel);
     }

     public static ViewModel ToViewModel(this Entity entity) 
     {
          return new ViewModel() {
              // Include mapping inside here    
              Id = entity.Id;
          };
     }

 }


1 commentaires

Votre question se résume donc à "Comment écrire une méthode d'extension", ce qui en fait un duplicata de par exemple. Stackoverflow.com/Questtions/1188224/...



0
votes

n'est-ce pas évident? Vous devez faire boucler les éléments de la première liste et les convertir dans la charge utile de la deuxième liste, puis les ajoutez à une nouvelle création, quelque chose comme ce qui suit: XXX

Il convient de mentionner que Dans cet exemple, la conversion se produit effectivement sur le niveau de l'article, pas la liste, donc c'est votre élément source qui doit être modifié si vous décidez d'aller de cette façon.


0 commentaires