TGViewer
codaza codaza @codaza · 4.59K subscribers
Post #52 4.9K
#капитану_на_заметку

Всем привет!

В прошлый раз мы поговорили об использовании метода расширения AsSpan(), который можно вызывать на объектах класса String и предотвратить ненужные аллокации в оперативной памяти. В продолжении темы, мне хотелось бы рассказать про похожую возможность, но уже для коллекции List.

Возникают ситуации, когда нам нужно получить некоторый диапазон значений из List. Как поступал разработчик на C# до появления .NET5? Очень просто, он вызывал метод GetRange() и получал желаемый диапазон значений. Такое действие неминуемо сопровождается выделениями в оперативной памяти. Сегодня мы можем этого избежать и значительно снизить нагрузку на оперативную память воспользовавшись статическим методом AsSpan(), который располагается в классе CollectionsMarshal. Этот метод вернёт нам Span<T> представление данных в списке, после чего можно вызвать метод Slice() c такими же параметрами, как у GetRange().

+1 к производительному коду ✅

Всем хороших выходных!
  • 👍 77
  • 🔥 3
  • ❤ 1
  • 👎 1
More from @codaza
  1. Oct 28, 2022#капитану_на_заметку Всем привет! 👻 Понятие "качественный код" очень многогранно. Одна из…
  2. Oct 5, 2022#капитану_на_заметку Всем привет! Рефакторить код и визуально уменьшать синтаксические кон…
  3. Sep 14, 2022#капитану_на_заметку Всем привет! Мне нравится использовать подход Code First. Особенно уд…
  4. Sep 7, 2022#капитану_на_заметку Всем привет! Нельзя сказать, что генерация исключений в C# выглядит и…
  5. Aug 31, 2022#капитану_на_заметку Всем привет! Комментирование исходного кода — это здорово! Открыл исх…
  6. Aug 24, 2022#капитану_на_заметку Всем привет! Большинство web-сервисов предоставляют возможности для и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →