c# - 使用 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 来做到这一点。
解决方案
Select
然后使用ToList
:
var result = AEnumerable.Select(e => new B
{
FirstName = e.Forename,
LastName = e.Surname,
Dob = e.DateOfBirth
}).ToList();
推荐阅读
- python - 如何在 python Telegram bot 的主要功能中获取 Telegram 用户的用户名?
- sip - 使用 ejabberd 进行 SIP 身份验证
- r - 如何在哑铃图中添加数据标签?
- mysql - SQL - 多 SELECT 和 GROUP BY 以获取表的 MIN(value)
- c - OpenSSL 中的时间范围是多少
- python - Pytorch 模型训练 CPU 内存泄漏问题
- json-api - JSON:API 中不区分大小写的过滤
- sql - 在 sql server 2016 中连接由分号分隔的特定列的值
- maven - 使用 Spock、maven 和 surefire 重新运行整个测试类
- python - Python删除包含“不寻常”字符的单词