我想判断一下是否包含Span<T>
个元素的Span<T>
个元素的顺序相同.
Span<byte> buffer = stackalloc byte[] { 1, 6, 2, 5, 3, 4 };
Span<byte> needle1 = stackalloc byte[] { 2, 5, 3 }; // this one is contained in buffer in the same order
Span<byte> needle2 = stackalloc byte[] { 2, 5, 4 }; // this one is not contained in buffer in the same order
我知道我可以使用Span<T>.Contains()
,它只接受一个元素作为参数来找到缓冲区中针的第一个元素,然后手动逐个比较下一个元素,但这似乎是非常不理想和乏味的过程.
Span<T>.Overlaps()
在这里不是答案,因为指针不是存储在与缓冲区相同的内存地址中.出于性能方面的原因,我希望避免使用LINQ.在我遗漏的标准库中有没有其他方法?