From 89cbfe6755bcf52404f2a32b7cdf9978f7c1c92f Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Tue, 2 May 2023 07:29:47 -0700 Subject: [PATCH] Simplify SelectArrayIterator method --- .../System.Linq/src/System/Linq/Select.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/libraries/System.Linq/src/System/Linq/Select.cs b/src/libraries/System.Linq/src/System/Linq/Select.cs index 791363496f68b1..9d3dcc45b05f3b 100644 --- a/src/libraries/System.Linq/src/System/Linq/Select.cs +++ b/src/libraries/System.Linq/src/System/Linq/Select.cs @@ -178,15 +178,17 @@ public SelectArrayIterator(TSource[] source, Func selector) public override bool MoveNext() { - if (_state < 1 | _state == _source.Length + 1) + TSource[] source = _source; + int index = _state - 1; + if ((uint)index < (uint)source.Length) { - Dispose(); - return false; + _state++; + _current = _selector(source[index]); + return true; } - int index = _state++ - 1; - _current = _selector(_source[index]); - return true; + Dispose(); + return false; } public override IEnumerable Select(Func selector) =>