7

我需要找到集合之间的差异。包含集合的类是不同的,但具有相同类型的字段。为了能够使用 except 方法来获取差异,我想将一个列表映射到另一个列表。

我可以使用 toList 方法做到这一点吗?如果没有,是否有可能以另一种方式?

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

谢谢

4

3 回答 3

15

在 LINQ 中,Select 在其他语言中是“地图”的同义词。它被称为“选择”,因为这个词来自数据库术语......但选择是你想要的:

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

于 2010-12-26T14:58:26.520 回答
1

如果你想要一个投影,你可以使用 ye oldeSelect运算符:

list1.Except(list2.Select(x => ConvertToClass1(x));
于 2010-12-26T14:52:09.167 回答
0
List<Class1>.Except(List<Class2>.Select(e => 
                                           new Class1() 
                                                    { 
                                                      Field1 = e.Field1 ...
                                                    });

但是,我建议您使用automapper

于 2010-12-26T14:53:01.263 回答