基于您不希望出现多个条件的注释,可以使用Enum避免显式索引。If/Switch案例可以替换为字典,字典将索引(或更好的枚举)映射到操作(需要为每个案例执行)。
var cron = "* * */2 * ";
var arr = cron.Split(new[]{" "},StringSplitOptions.RemoveEmptyEntries);
var value = arr.Select((x,index)=>new {Value=x, Index=index}).First(x=>!x.Value.Equals("*"));
var dictionaryOfActions = new Dictionary<Position,Action>
{
[Position.Minute] = ()=> ProcessMinute(),
[Position.Hour] = ()=> ProcessHour(),
[Position.Day] = ()=> ProcessDay(),
};
dictionaryOfActions[(Position)value.Index]();
public enum Position
{
Minute,
Hour,
Day
}
ProcessMinute、ProcessHour等表示需要在每个条件下执行的操作。