繁体   English   中英

转换字典 <int, ParentObject> 到字典 <int, ChildObject> LINQ

[英]Convert Dictionary<int, ParentObject> to Dictionary<int, ChildObject> LINQ

我有一个仅包含一些属性(在这种情况下为long string )的父类(我们将其称为ParentClass ),以及一个从其继承的类(我们将其称为ChildClass ),该类不添加任何新属性,而仅更改一些方法的实现。

在一种方法中,我有一个Dictionary<int, ParentClass> ,我想将其转换为Dictionary<int, ChildClass> 理想情况下,我想使用LINQ做到这一点,但这是我当前的foreach循环实现:

bar = new Dictionary<int, ChildClass>();
foreach(var foo in parentDictionary) { //parentDictionary is Dictionary<int, ParentClass>
    bar.Add(foo.Key, new ChildClass() { Id = foo.Value.Id, Name = foo.Value.Name});
}

有没有一种简单的方法可以用LINQ实现这种转换以使其成为单线?

parentDictionary.ToDictionary(
    kv => kv.Key,
    kv => new ChildClass { Id = kv.Value.Id, Name = kv.Value.Name });

它实际上在做同样的事情,但是您可以使用LINQs ToDictionary方法,如下所示:

bar = parentDictionary.ToDictionary(x => x.Key, new ChildClass() { Id = x.Value.Id, Name = x.Value.Name});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM