LINQ将一种类型映射到另一种类型

时间:2010-12-26 14:50:31

标签: linq mapping except

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

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

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

由于

3 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:1)

如果您想要投影,可以使用Select运算符:

list1.Except(list2.Select(x => ConvertToClass1(x));

答案 2 :(得分:0)

List<Class1>.Except(List<Class2>.Select(e => 
                                           new Class1() 
                                                    { 
                                                      Field1 = e.Field1 ...
                                                    });

但是,我建议您使用automapper