최신C#버전에서는 T[] 대신 ReadOnlySpan<T> 도 가능한듯.

그냥 최신버전에서 완전금지에서 일부허용으로 바뀌면서 에러표시를 안보이는거였음... 


static IEnumerable<Range> Split<T>(this IList<T> data, T separator) where T : IEquatable<T>
{
int s, e = s = 0;
while (e < data.Count)
if (data[e].Equals(separator)) { yield return s..e; s = e += 1; } else e += 1;
yield return s..e;
}

Sync();
void Sync()
{
const byte _ = 0;
byte[] b = [1,2,3,4,_,1,2,3,_,1,2,_];
var r = b.Split(_);
r.Display();
r.Select(r => b[r]).Display();
}