首页 > 解决方案 > 使用 IEnumerable 的详细信息来实例化列表的优雅的基于 LINQ 的方法

问题描述

我有两个结构非常相似的对象,我们称它们为 A 和 B。A 和 B 共享相似的属性,例如名字、姓氏和 Dob。

我有一个IEnumerable<A>,其中填充了许多 A 对象。我希望能够遍历 A 中找到的每个对象,使用其详细信息来实例化 B 的新对象,然后添加到新的List<B>.

我可以直接做这个,但我很肯定有一种方法可以使用 Linq 来做到这一点,因为我在过去看到过类似的东西,但我不记得具体是怎么做的。

长手是:

List<B> list = new List<B>();

foreach (A a in AEnumerable)
{
    B b = new B
    {
        FirstName = a.Forename,
        LastName = a.Surname,
        Dob = a.DateOfBirth
    };

    list.Add(b);
}

但我不确定如何使用 Linq 来做到这一点。

标签: c#linq

解决方案


Select然后使用ToList

var result = AEnumerable.Select(e => new B
                {
                    FirstName = e.Forename,
                    LastName = e.Surname,
                    Dob = e.DateOfBirth
                }).ToList();

推荐阅读