我有一个名为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();