所以我有一个包含许多属性的对象列表.这些属性包括name和id.我们将此对象称为ExtendedObject.我还声明了一个新的List,它包含只有属性名和id的不同对象.我们将此对象称为BasicObject.
我想要做的是将ExtendedObject对象列表转换或复制(缺少更好的单词)到BasicObject对象列表.我知道C#列表有很多有用的方法,所以我想知道是否有一种简单的方法可以说出以下结果:
basicObjectList = extendedObjectList.SomeListMethod<BasicObject>(some condition here);
Run Code Online (Sandbox Code Playgroud)
但我意识到它可能最终看起来不像那样.我也意识到我可以循环遍历ExtendedObjects列表,从每个ExtendedObject的名称和id创建一个新的BasicObject,并将其推送到BasicObjects列表中.但我希望有一些比这更优雅的东西.
有没有人有任何想法?非常感谢.
Luk*_*keH 27
这取决于你是如何构建你BasicObject的ExtendedObject,但你可以使用这个ConvertAll方法:
List<BasicObject> basicObjectList =
extendedObjectList.ConvertAll(x => new BasicObject
{
id = x.id,
name = x.name
});
Run Code Online (Sandbox Code Playgroud)
或者,如果您愿意,可以使用LINQ Select方法然后转换回列表:
List<BasicObject> basicObjectList =
extendedObjectList.Select(x => new BasicObject
{
id = x.id,
name = x.name
}).ToList();
Run Code Online (Sandbox Code Playgroud)
如果您使用的是.NET 3.5或更高版本,可以使用LINQ投影来完成:
basicObjectList = extendedObjectList.Select(x => new BasicObject { Id=x.Id, Name=x.Name})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28559 次 |
| 最近记录: |