假设我有一个类Building,其属性为int Id,int Height,int NumberOfFloors。
如果我有一个词典,其中每个键都是建筑物ID。有没有办法将其转换为字典,其中每个键是建筑物ID,每个值是楼层数。显然这对循环来说是可行的。只是想知道是否有一种使用lambdas的简单方法吗?
谢谢!
var intToBuilding = new Dictionary<int, Building>(); //pretend populated
var intToInt = new Dictionary<int, int>();
foreach(var intBuilding in intToBuilding)
{
var building = userPreference.Value;
intToInt.Add(intBuilding.Key, building.Height);
}
答案 0 :(得分:4)
应该是这样的:
var floorDictionary = buildingDictionary
.ToDictionary(kv => kv.Key, kv => kv.Value.NumberofFloors);
源词典实现了IEnumerable< KeyValuePair<TKey, TValue> >
,为此有一个扩展方法ToDictionary(keySelector, valueSelector)
。