Re[4]: У string нет ReplaceAt(int, char)
От: rameel https://github.com/rsdn/CodeJam
Дата: 09.07.25 17:41
Оценка: 121 (2) +1
Здравствуйте, 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>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.