LINQ сопоставить один тип другому - PullRequest
6 голосов
/ 26 декабря 2010

Мне нужно найти разницу между наборами.Классы, содержащие наборы, различны, но имеют поля одного типа.Чтобы иметь возможность использовать метод Except, чтобы понять разницу, я хочу отобразить один список в другой.

Могу ли я сделать это, используя метод toList?если нет, возможно ли это по-другому?

List<Class1>.Except(List<Class2> I need to map class2 list to class1 list)

Спасибо

Ответы [ 3 ]

13 голосов
/ 26 декабря 2010

В LINQ Select является синонимом «map» на других языках.Это называется «выбрать», потому что слово происходит от терминологии базы данных ... но выберите то, что вы хотите:

var mappedTypes = myCollection.Select(item => new MappedType(item.Something));

1 голос
/ 26 декабря 2010

Если вы хотите проекцию, вы можете использовать ye olde Select оператор:

list1.Except(list2.Select(x => ConvertToClass1(x));
0 голосов
/ 26 декабря 2010
List<Class1>.Except(List<Class2>.Select(e => 
                                           new Class1() 
                                                    { 
                                                      Field1 = e.Field1 ...
                                                    });

Однако я бы посоветовал вам использовать automapper .

...