C# 检查操作列表中的参数

C# 检查操作列表中的参数,c#,list,action,C#,List,Action,例如,我想知道是否可以引用列表中的参数 if ( listOfActions[index].SecondParameter == x ){ do stuff } 老实说,我不太明白这些,但我现在得到的是: List<Action> musicSequence = new List<Action>(); ... void addBulletToList (string direction, float time){ musicSequence.Add (

例如,我想知道是否可以引用列表中的参数

if ( listOfActions[index].SecondParameter == x ){
    do stuff
}
老实说,我不太明白这些,但我现在得到的是:

List<Action> musicSequence = new List<Action>();
...
void addBulletToList (string direction, float time){
    musicSequence.Add ( ()=>musicControl.spawnBullet(direction, time) );
}

void spawnBullet(string direction, float time){
    go = (GameObject)Instantiate(Resources.Load(direction));
}
//And in my main function it would be something like this
if ( CurrentMusicTime equals the time parameter in musicSequence[index] ){
    execute musicSequence[index]
    next index
}
List musicSequence=new List();
...
void addBulletToList(字符串方向、浮动时间){
musicSequence.Add(()=>musicControl.spawnBullet(方向、时间));
}
无效项目符号(字符串方向、浮动时间){
go=(游戏对象)实例化(Resources.Load(direction));
}
//在我的主要功能中是这样的
如果(CurrentMusicTime等于musicSequence[索引]中的时间参数){
执行音乐序列[索引]
下一个索引
}

<>代码> 如果代码>浮点时间< /> >每个动作是唯一的,您可以考虑使用<代码>字典<代码>来存储相应的操作,因为您当前正在尝试的是不可能的。
Dictionary<float, Action> musicSequence = new Dictionary<float, Action>();

void addBulletToList (string direction, float time){
    musicSequence.Add(time, () => musicControl.spawnBullet(direction, time));
}

void spawnBullet(string direction, float time){
    go = (GameObject)Instantiate(Resources.Load(direction));
}

if (musicSequence.Keys.Contains(CurrentMusicTime)){
    musicSequence[CurrentMusicTime]();
    next index
}
Dictionary music sequence=new Dictionary();
void addBulletToList(字符串方向、浮动时间){
musicSequence.Add(时间,()=>musicControl.spawnBullet(方向,时间));
}
无效项目符号(字符串方向、浮动时间){
go=(游戏对象)实例化(Resources.Load(direction));
}
if(musicSequence.Keys.Contains(CurrentMusicTime)){
音乐序列[当前音乐时间]();
下一个索引
}

<>代码> 如果代码>浮点时间< /> >每个动作是唯一的,您可以考虑使用<代码>字典<代码>来存储相应的操作,因为您当前正在尝试的是不可能的。
Dictionary<float, Action> musicSequence = new Dictionary<float, Action>();

void addBulletToList (string direction, float time){
    musicSequence.Add(time, () => musicControl.spawnBullet(direction, time));
}

void spawnBullet(string direction, float time){
    go = (GameObject)Instantiate(Resources.Load(direction));
}

if (musicSequence.Keys.Contains(CurrentMusicTime)){
    musicSequence[CurrentMusicTime]();
    next index
}
Dictionary music sequence=new Dictionary();
void addBulletToList(字符串方向、浮动时间){
musicSequence.Add(时间,()=>musicControl.spawnBullet(方向,时间));
}
无效项目符号(字符串方向、浮动时间){
go=(游戏对象)实例化(Resources.Load(direction));
}
if(musicSequence.Keys.Contains(CurrentMusicTime)){
音乐序列[当前音乐时间]();
下一个索引
}

谢谢!我不知道这个字典的结构!非常有趣。我在使我的计时器与键值匹配时遇到了一些问题,但经过几段难闻的代码后,它又成功了~UEHUEHuEHUE thx~很高兴它起到了作用!很抱歉没有精确的匹配。根据你上面的描述,这是我最好的猜测。谢谢!我不知道这个字典的结构!非常有趣。我在使我的计时器与键值匹配时遇到了一些问题,但经过几段难闻的代码后,它又成功了~UEHUEHuEHUE thx~很高兴它起到了作用!很抱歉没有精确的匹配。根据你上面所描述的,这是我最好的猜测。