LINQ Map one type to another
Question
I need to find difference between to sets. Classes ,comprising the sets, are different but have same type of fields. To be able to use Except method ,to take the difference, i want to map one list to another.
Can i do this using toList method? if not, Is it possible in another way?
List<Class1>.Except(List<Class2> I need to map class2 list to class1 list)
Thanks
Solution
In LINQ, Select is synonymous with "map" in other languages. It is called "select" because the word comes from database terminology... but Select is what you want:
var mappedTypes = myCollection.Select(item => new MappedType(item.Something));
OTHER TIPS
If you want a projection you can use ye olde Select
operator:
list1.Except(list2.Select(x => ConvertToClass1(x));
List<Class1>.Except(List<Class2>.Select(e =>
new Class1()
{
Field1 = e.Field1 ...
});
However, I would advise you to use automapper.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow