LINQ carte d'un type à l'autre
Question
Je dois trouver différence entre des ensembles. Les classes, comprenant les ensembles, sont différents mais ont même type de champs. Pour pouvoir utiliser Sauf méthode, prendre la différence, je veux une liste à la carte à l'autre.
Puis-je faire cela en utilisant la méthode toList? sinon, est-il possible d'une autre manière?
List<Class1>.Except(List<Class2> I need to map class2 list to class1 list)
Merci
La solution
Dans LINQ, Select est synonyme de « carte » dans d'autres langues. Il est appelé « sélectionner » parce que le mot vient de la terminologie de base de données ... mais Select est ce que vous voulez:
var mappedTypes = myCollection.Select(item => new MappedType(item.Something));
Autres conseils
Si vous voulez une projection, vous pouvez utiliser opérateur Select
:
list1.Except(list2.Select(x => ConvertToClass1(x));
List<Class1>.Except(List<Class2>.Select(e =>
new Class1()
{
Field1 = e.Field1 ...
});
Cependant, je vous conseille d'utiliser automapper .