C#从字典值提取子列表:获取Room类的roomName属性列表
解决Dictionary提取属性生成List的问题
嘿,别担心,这个转换其实超容易上手!你之前用List的时候可以直接访问元素属性,但Dictionary里的每一项都是**KeyValuePair<Guid, Room>**类型——简单说就是每个项都包含一个Key(你的Guid)和一个Value(对应的Room对象)。
所以你只需要在Select里通过kv.Value拿到对应的Room实例,再访问它的roomData.roomName属性就可以了,正确的代码应该是这样:
List<string> roomNames = RoomManager.roomDict.Select(kv => kv.Value.roomData.roomName).ToList();
额外小提示
如果你的字典里有可能存在null的Room对象,或者roomData也可能为null,建议加上过滤逻辑避免空引用异常:
List<string> roomNames = RoomManager.roomDict .Where(kv => kv.Value != null && kv.Value.roomData != null) .Select(kv => kv.Value.roomData.roomName) .ToList();
这样就能安全生成你需要的房间名称列表,用来填充下拉框啦~
内容的提问来源于stack exchange,提问作者Rik
相关产品推荐
相关产品推荐

