public override void OnNext(T value) { bool isPassed; try { isPassed = parent.predicate(value); } catch (Exception ex) { try { observer.OnError(ex); } finally { Dispose(); } return; } if (isPassed) { if (seenValue) { try { observer.OnError(new InvalidOperationException("sequence is not single")); } finally { Dispose(); } return; } else { seenValue = true; lastValue = value; } } }
public override void OnNext(T value) { bool flag; try { flag = parent.predicate(value); } catch (Exception error) { try { observer.OnError(error); } finally { Dispose(); } return; } if (flag) { if (seenValue) { try { observer.OnError(new InvalidOperationException("sequence is not single")); } finally { Dispose(); } return; } seenValue = true; lastValue = value; } }