public TransitionChainEnumerator(LabeledTransitionMarkovChain2 ltmc)
 {
     _ltmc       = ltmc;
     _enumerator = CreateEnumerator(ltmc);
 }
 private static IEnumerator <KeyValuePair <EnrichedTargetState, double> > CreateEnumerator(LabeledTransitionMarkovChain2 ltmc)
 {
     foreach (var initialState in ltmc._initialStates)
     {
         yield return(initialState);
     }
     foreach (var transition in ltmc._transitions)
     {
         foreach (var d in transition.Value)
         {
             yield return(d);
         }
     }
 }
 public LabeledTransitionEnumerator(LabeledTransitionMarkovChain2 ltmc)
 {
     _ltmc       = ltmc;
     _current    = default(KeyValuePair <EnrichedTargetState, double>);
     _enumerator = ltmc._initialStates.GetEnumerator();
 }