如何从Dictionary<string, atypeModel>按值取键?报错求助
解决方案
错误原因很明确:a.Value 返回的是 atypeModel 类型的对象,直接把它和字符串 "b" 用 == 比较会因类型不匹配报错。你需要访问 atypeModel 实例的 Value 属性来完成比较。
正确代码
var myKey = types.FirstOrDefault(a => a.Value.Value == "b").Key;
额外注意事项
- 如果没有找到匹配项,
FirstOrDefault会返回KeyValuePair<string, atypeModel>的默认值,此时Key为空字符串。建议先判断是否找到匹配项再取值:var match = types.FirstOrDefault(a => a.Value.Value == "b"); if (match != default(KeyValuePair<string, atypeModel>)) { var myKey = match.Key; // 执行后续逻辑 } else { // 处理未找到匹配项的情况 }
内容的提问来源于stack exchange,提问作者user2315104
相关产品推荐
相关产品推荐

