public bool AddCue(LightCue cue) { if (mCues.Exists(delegate(LightCue l) { return(l.cueNumber == cue.cueNumber); })) { return(false); } mCues.Add(cue); mCues.Sort(); return(true); // since LightCue implements IComparable<LightCue> //we dont need to specify a delegate. it will sort by cue number }
public LightCue getPrecedingCue(LightCue cue) { if (cue == null) { return(mCues[0]); } int index = mCues.FindIndex(delegate(LightCue l) { return(l.cueNumber == cue.cueNumber); }); if (index == -1) { return(mCues[0]); } if (index == 0) { return(mCues[mCues.Count - 1]); } return(mCues[index - 1]); }