public JumpCondition JumpNextState() { JumpCondition jumpCondition = new JumpCondition() { IsFirstAvailable = Distributor.IsNextTrue(FirstPropability), IsSecondAvailable = Distributor.IsNextTrue(SecondPropability) }; var foundCondition = CurrentState.JumpConditionArray.First(e => e.Equals(jumpCondition)); CurrentState = (SystemState)foundCondition.JumpState; return(foundCondition); }