我有一个名为DataAPIKey的类.我有一个继承自那个的第二个类.
在我的代码中我有一个List,我想用它来制作一个新类的列表.有没有办法在不使用每个循环的情况下执行此操作?
使用下面的示例,我做了以下代码,似乎正在做我想要的.
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()
Run Code Online (Sandbox Code Playgroud)
使用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();
Run Code Online (Sandbox Code Playgroud)
或初始化程序:
var newList = oldList.Select(oldItem => new InheritedItem()
{
Property = oldItem.Property,
Property2 = oldItem.Property2
}).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |