方便的方式来呼叫列表<>?

时间:2017-01-12 11:10:38

标签: c# list monogame

所以对于我正在制作的游戏,我需要使用许多不同的声音效果,为了能够在关闭游戏时关闭所有声音效果的实例,我需要将它们保存在列表中。问题是,当我将它们保存在一个对它有很多不同影响的列表中时,我必须查找哪个soundeffect对应于列表中的哪个条目,例如SoundEffect [0]或SoundEffect [48]。有没有方便的方法使用他们的名字从列表中调用东西?例如SoundEffect [Strike]或SoundEffect [Death]等等?

如果有人有办法让这个更容易使用,请告诉我!

1 个答案:

答案 0 :(得分:3)

不要使用List。使用Dictionary并将每个音效存储在唯一ID下。然后你可以通过它的ID引用每个声音,它将在恒定时间内返回 - 不需要查找。

// Declaration
Dictionary<string, SoundEffect> dict = new Dictionary<string, SoundEffect>();

// Adding a sound effect
dict.Add("punch_sound", punchSoundEffectObject);

// Getting a sound effect
var sfx = dict["punch_sound"];

(显然用你正在使用的任何类替换示例中的SoundEffect。)