• c#_arraya_vs_list Q; функции. параметры.

    В разрезе накладных расходов:
    Передавать массивы int VS списки int ?
    A: *устало
    Списки и массивы используются для разных целей
    Параметр-список обычно передаётся, если вы хотите, чтобы метод заполнил этот список или сделал с ним что-нибудь ещё.
    Массив — когда вы хотите, чтобы метод просто перебрал значения, при этом IEnumerable использовать неудобно.
    Если вы хотите передать список, но метод не должен его изменять — есть ReadOnlyCollection<T>.

    Q> Исходник — список — хочу отдать функции чтобы перебрала, IEnumerable использовать не удобно.
    т.е. передаю Массив, по вашим предложения. Но, ведь для создание массива и передачи его в параметрах нужны накладные расходы. Какая величина этих накладных расходов?
    Q> в списке 100-5000 значений. среднее 200-300
    A> Короткий ответ: никакая, копирование из списка в массив использует Array.CopyTo(), он для мелких списков практически константа.
    Чуть длиннее: просто померьте. Если критично — передавайте сам список. Если некритично — пишите так, как вам удобно.

Replies (4)