我有一个父类(我们称之为ParentClass
),它只包含几个属性(在本例中是long
和string
)沿着还有一个从它继承的类(我们称之为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实现这种转换,使其成为一行程序?
2条答案
按热度按时间5jdjgkvh1#
IDictionary<TKey, TValue>
继承自IEnumerable<KeyValuePair<TKey, TValue>>
,所以我们可以使用任何LINQ方法:字符串
ux6nzvsh2#
它本质上是做同样的事情,但你可以像这样使用LINQs ToDictionary方法:
字符串