Здравствуйте, Jack128, Вы писали:
J>Чтоб сделать лямбду static придется ручками описать структуру State (туплы не подходят, нужна именно ref struct)
Это по тому, что Span нельзя делать параметром дженерика, но нас ведь никто не заставляет
string source передавать как
ReadOnlySpan<char>, можно передать как есть — строку:
static string ReplaceAt(string source, int index, char ch)
{
return string.Create(source.Length, (source, index, ch), static (Span<char> buffer, (string source, int index, char ch) state) =>
{
state.source.CopyTo(buffer);
buffer[state.index] = state.ch;
});
}
Пример
Sharplab... << RSDN@Home 1.0.0 alpha 5 rev. 0>>