Table of Contents

AL0005: Use SequenceEqual for Span non-constant comparison

When comparing Span and a non-constant, use SequenceEqual instead of equality operators, unless you want to compare addresses.

When it triggers

ReadOnlySpan<char> span1 = GetSpan();
ReadOnlySpan<char> span2 = GetOtherSpan();

// Warning: Use SequenceEqual instead of equality operators
if (span1 == span2) { }  // AL0005

Why this matters

Using == on Span types compares references/addresses, not content. For non-constant comparisons where pattern matching isn't available, use SequenceEqual for content comparison.

How to fix

Use SequenceEqual:

ReadOnlySpan<char> span1 = GetSpan();
ReadOnlySpan<char> span2 = GetOtherSpan();

if (span1.SequenceEqual(span2)) { }  // Compares content

Configuration

[*.cs]
dotnet_diagnostic.AL0005.severity = warning