调用First()获取字典首元素赋值DateTime变量时出现CS0029错误
问题原因及解决方法
原因分析
Dictionary<DateTime, double>是键值对集合,调用First()方法时,返回的是整个键值对对象(KeyValuePair<DateTime, double>类型),而你的ExpirationDate属性是DateTime类型,两者类型不兼容,所以出现CS0029类型转换错误。
解决代码
要获取字典第一个项的DateTime类型键,需要明确访问键值对的Key属性:
var timeOffWithExpiration = await this.GetAvailableTimeOffWithExpiration(u.Id); var TimeOff = new TimeOffApproved() { ExpirationDate = timeOffWithExpiration.First().Key };
注意:如果业务逻辑实际需要的是键值对中的
double值(但结合属性类型来看大概率是取键),则对应访问Value属性,但需确保类型匹配。
内容的提问来源于stack exchange,提问作者Jesus
相关产品推荐
相关产品推荐

