Skip to content

Commit a534cb9

Browse files
committed
optimize first operators for frozen-sequence
1 parent e83f51a commit a534cb9

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

Sources/Falko.Common.Sequences/Sequences/FrozenSequence.Operator.First.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,14 @@ public T First(Func<T, bool> predicate)
2020
{
2121
ArgumentNullException.ThrowIfNull(predicate);
2222

23-
foreach (ref readonly var item in this)
23+
scoped ref var itemsReference = ref MemoryMarshal.GetArrayDataReference(_items);
24+
25+
var itemsCount = _itemsCount;
26+
27+
for (var itemIndex = 0; itemIndex < itemsCount; itemIndex++)
2428
{
29+
var item = Unsafe.Add(ref itemsReference, itemIndex);
30+
2531
if (predicate(item)) return item;
2632
}
2733

0 commit comments

Comments
 (0)