public static TariffMetroCommandCalculateInterval First(this TariffMetro tariff) { TariffMetroCommand cmd = tariff.Commands.FirstOrDefault(); if (cmd == null) { return(null); } while (cmd.Type == TariffMetroCommandType.Goto) { cmd = tariff.Goto(cmd); } return((TariffMetroCommandCalculateInterval)cmd); }