通过foreach迭代JsonData会获取IDictionary
枚举数,而不是IList
枚举数。
foreach (var jsonEntry in jsonData)
这导致我的代码抛出错误。
InvalidOperationException: Instance of JsonData is not a dictionary
LitJson.JsonData.EnsureDictionary ()
LitJson.JsonData.System.Collections.Specialized.IOrderedDictionary.GetEnumerator ()
LitJson.JsonData.System.Collections.IDictionary.GetEnumerator ()
将对象强制转换为
IList
会使Resharper发出警告“类型强制转换是多余的”。foreach (var jsonEntry in jsonData as IList)
为什么Resharper认为演员表是多余的?
最佳答案
为什么Resharper认为演员表是多余的?
如果您这样认为:
IList是一个ICollection,IDictionary也是一个ICollection,因为它们两个都实现了“ ICollection”,Resharper的警告应该变得清楚。
关于c# - Resharper认为类型转换是多余的,但是如果没有类型转换,代码将无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33258145/