在foreach中出现的问题

本文关键字:问题 foreach | 更新日期: 2023-09-27 17:50:14

我在这段代码中遇到了一些问题,它来自一个小程序,我正在为一个RPG的魔法道具创造者工作。它应该很简单,spellList(全局声明)是字符串的哈希表键,值是类' spell '的对象。

public void PopulateSpellDropDown()
{
    Spells s = new Spells();
    foreach (DictionaryEntry entry in spellList)
    {
        s = entry.Value; **<- Error here, no implicit conversion.**
        cbScrollSpells.Items.Add(entry.Key.ToString());
    }
}

我试着在我能想到的所有地方都放上石膏,但似乎都不起作用。我试着搜索了一些教程,但没有一个建议似乎是有效的。我知道这将是一个令人尴尬的简单问题,但我将感谢您的帮助。

谢谢。

在foreach中出现的问题

就这样做:

s = (Spell) entry.Value; 

或者,您可以使用Dictionary<T,T>泛型类型作为集合,这样您就不必进行任何类型转换。

当"values是类' spell '的对象"时,那么这应该可以工作:

  s = (Spells) entry.Value; 

您应该显式地强制转换条目。值设置为合适的类型,如:

(Spell)entry.Value

我宁愿使用更短的

foreach (var entry in spellList)
不是

foreach (DictionaryEntry entry in spellList)

如果条目上的value属性是Spells类型,那么显式强制转换将为您解决这个问题;

s = (Spells)entry.Value;