给定 a ReadOnlySpan<char>
,如何确认跨度中给定索引处存在字符串?我需要一个bool
结果。
我想要一种简单的,最好是一行的零分配方法。
由于边界检查,必须进行数学计算到跨度末尾的索引偏移量等,我的尝试很快就变得棘手。我的解决方案太冗长了。我想看看你能否彻底解决这个问题。尝试保留 lambda 语法。谢谢。
var span = "FooBarBazBizzBuzz".AsSpan();
Assert.IsTrue(Test(span,9,"Bizz".AsSpan()));
// As you can see, I am trying to use parameters that have no allocation
public bool Test(ReadOnlySpan<char> span, int index, ReadOnlySpan<char> pattern) => //???;
您可以获取从 开始的跨度切片
index
,并进行测试StartsWith
:这会
char
单独比较这些值。还有另一个重载,它采用 aStringComparison
作为第二个参数。如果您不想在
index
无效时返回 false,请添加检查: