使用现有列表创建对象列表

本文关键字:列表 创建对象 | 更新日期: 2023-09-27 18:35:45

我有一个名为DataAPIKey的类。我有第二个类继承自该类。

在我的代码中,我有一个列表,我想用它来制作新类的列表。有没有办法在不使用每个循环的情况下做到这一点?

使用下面的示例,我编写了以下代码,它似乎正在做我想要的事情。

List<DataAPIKey> apiList = db.GetPendingAction("Character");
List<DataCharacter> charList = apiList.Select(k => {
        DataCharacter dc = new DataCharacter(k.apiKeyId, k.keyId, k.verificationCode);
        return dc;
    }).ToList()

使用现有列表创建对象列表

使用 LINQ Select 方法。

var newList = oldList.Select(oldItem => new InheritedItem(oldItem)).ToList();

在简单的英语中,这翻译为"从oldList中获取每个项目,将每个项目作为函数参数提供给一个函数,该函数将获取该项目并执行一些逻辑以返回不同类型的项目,然后获取所有返回的项目并将它们填充到新列表中。

或者,如果您没有构造函数来初始化继承的类,则可以提供任何代码块:

var newList = oldList.Select(oldItem =>
{
    var newItem = new InheritedItem();
    newItem.Property = oldItem.Property;
    return newItem;
}).ToList();

或初始值设定项:

var newList = oldList.Select(oldItem => new InheritedItem()
{
    Property = oldItem.Property,
    Property2 = oldItem.Property2
}).ToList();