C# 列表<;a>;列出<;b>;当a和b具有相同的结构时转换?

C# 列表<;a>;列出<;b>;当a和b具有相同的结构时转换?,c#,.net,linq,.net-3.5,C#,.net,Linq,.net 3.5,我使用C#3.5 DotNet框架和Linq 我有两个视图具有相同的结果模式,但在linq中它们当然是不同的对象 如何将列表a转换为列表b?您可以创建一个新的b列表: List<B> listOfB = listOfA.Select(a => new B { Foo = a.Foo, Ba

我使用C#3.5 DotNet框架和Linq

我有两个视图具有相同的结果模式,但在linq中它们当然是不同的对象


如何将列表a转换为列表b?

您可以创建一个新的b列表:

List<B> listOfB = listOfA.Select(a => new B {
                                                Foo = a.Foo,
                                                Bar = a.Bar,
                                                // etc...
                                            }).ToList();
List listOfB=listOfA。选择(a=>new B{
Foo=a.Foo,
巴,
//等等。。。
}).ToList();

您可以创建B的新列表:

List<B> listOfB = listOfA.Select(a => new B {
                                                Foo = a.Foo,
                                                Bar = a.Bar,
                                                // etc...
                                            }).ToList();
List listOfB=listOfA。选择(a=>new B{
Foo=a.Foo,
巴,
//等等。。。
}).ToList();

当它们具有相同的结构时,请尝试查看

使用AutoMapper,您可以执行以下操作:

Mapper.CreateMap<Source, Destination>();
List<Destination> listDest = Mapper.Map<Source[], List<Destination>>(sources);
Mapper.CreateMap();
List listDest=Mapper.Map(源);

当它们具有相同的结构时,请尝试查看

使用AutoMapper,您可以执行以下操作:

Mapper.CreateMap<Source, Destination>();
List<Destination> listDest = Mapper.Map<Source[], List<Destination>>(sources);
Mapper.CreateMap();
List listDest=Mapper.Map(源);

有什么原因不能使用Cast()方法吗?有什么原因不能使用Cast()方法吗?