LINQ Map one type to another
Asked Answered
F

3

7

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

Frozen answered 26/12, 2010 at 14:50 Comment(0)
P
15

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));

Phoenician answered 26/12, 2010 at 14:58 Comment(0)
O
1

If you want a projection you can use ye olde Select operator:

list1.Except(list2.Select(x => ConvertToClass1(x));
Overside answered 26/12, 2010 at 14:52 Comment(0)
M
0
List<Class1>.Except(List<Class2>.Select(e => 
                                           new Class1() 
                                                    { 
                                                      Field1 = e.Field1 ...
                                                    });

However, I would advise you to use automapper.

Manon answered 26/12, 2010 at 14:53 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.