2017-02-10 32 views
-3

,并具有相同的属性最简单的可能性。对不起,现在我没有例子,因为我在智能手机上。我想是这样与EF和LINQ的选择并通过映射设置属性创建一个新的对象。但最终我还会返回一个新的IEnumerable。C#什么是映射/转换IEnumerable的<Told>到另一个IEnumerable的<Tnew>尤其是EF

+2

Stack Overflow是不是免费的代码编写服务。您应该尝试自己编写代码。做更多的研究之后,如果你有问题,你可以上传你与什么不工作,并提供一个最小的,完整的和可验证的例子解释清楚试了一下。 – MarceloBarbosa

+0

你是对的!但坐着火车与空的笔记本电脑我只是从我的智能手机postet一个简单的问题,没想到代码解决方案片段或什么的。尽管如此,给出的答案帮助我解决了我的问题。 – snoopdizzle

+0

没问题。很高兴你知道。回头见。 – MarceloBarbosa

回答

1

使用可以使用.ConverAll方法:

using System.Linq; // Need; 

    internal class Program 
    { 
    private static void Main() 
    { 
     IEnumerable<TOld> told = new List<TOld> { new TOld { Name = "Name1", Age = 18 } }; 
     IEnumerable<TNew> tnew = told.ToList().ConvertAll(t => new TNew { Name = t.Name, Age = t.Age }); 

     foreach (var @new in tnew) 
     Console.WriteLine(@new.Name); 
    } 
    } 

    public class TOld 
    { 
    public string Name { get; set; } 
    public int Age { get; set; } 
    } 

    public class TNew 
    { 
    public string Name { get; set; } 
    public int Age { get; set; } 
    } 
1

使用AutoMapper。以下是2类:

public class TOld { 
    public string Prop1 { get; set; } 
} 

public class TNew { 
    public string Prop1 { get; set; } 
} 

这是告诉AutoMapper如何映射它们的代码。使用下面的代码,你可以从映射到IEnumerable<TOld>IEnumerable<TNew>反之亦然:

// ReverseMap will do vice-versa mapping 
Mapper.Initialize(x => x.CreateMap<TOld, TNew>().ReverseMap()); 

IEnumerable<TOld> olds = new List<TOld> { new TOld { Prop1 = "TOld" } }; 

var news = Mapper.Map<IEnumerable<TNew>>(olds); 
相关问题