170 похожих чатов

Вопрос перфоманса, что лучше использовать IReadOnlyCollection, Array или IReadOnlyList в

принимаемых параметрах приватного метода, к примеру, мне необходим доступ по индексу, тогда если я использую IReadOnlyCollection, то приходится вызывать toArray, но если использую массив, тогда если у меня на руках List, то чтобы передать его в метод тоже нужно вызывать toArray, при этом, наверное, хотелось бы чтобы у похожих методов была похожие параметры, а не где-то массив, а где-то IReadOnlyCollection, в таком случае лучше везде использовать IReadOnlyList? Или лучше, например, кастануть лист к массиву? При этом иммутабельность мне не нужна

9 ответов

16 просмотров

Не могу сказать что лучше, но для доступа по индексу можно использовать ElementAt

Зависит от контекста задачи и метода. Общего ответа быть не может тут.

Vladislav- Автор вопроса
Aleksey Kalduzov
Зависит от контекста задачи и метода. Общего ответ...

хорошо, а например, метод чтобы сформировать объект, который будет возвращать, использует лист, лучше ли в таком случае его и вернуть как IEnumarable или скастовать к массиву? Решарпер советует IEnumerable, но я ведь знаю, что у меня там всегда не lazy коллекция

Vladislav- Автор вопроса
Maksim Zenin
Не могу сказать что лучше, но для доступа по индек...

AVOID using ElementAt() in certain scenarios!!! If you know you're going to look up each element, and you have (or could have) over 500, then just call ToArray(), store it in a reusable array variable, and index it off that way. For example; my code was reading data from of an Excel file. I was using ElementAt() to find the SharedStringItem my Cell was referencing. With 500 or less lines, you probably won't notice the difference. With 16K lines, it was taking 100 seconds.

Vladislav- Автор вопроса
Maksim Zenin
И что?

то, что мне нужен перфоманс, и использовать ElementAt() для итерации не очень,и лучше кастануть к массиву

Vladislav
то, что мне нужен перфоманс, и использовать Elemen...

А типа уже нужен? Уже в него все уперлось? Бенчмарки уже есть?

Vladislav
то, что мне нужен перфоманс, и использовать Elemen...

Ты завёл абстрактный разговор за перформансом без никаких вводных данных и тебе даже в цитате пишут что до 500 абсолютно побоку. Ты либо давай полный набор вводных и умные дядьки закидают тебя умными словами про как лучше, либо разговор ни о чём.

Vladislav- Автор вопроса
Aleksey Kalduzov
А типа уже нужен? Уже в него все уперлось? Бенчмар...

нет, но мне сказали написать максимально эффективно с точки зрения количества операция ( ну и времени их выполнения)

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Гляньте, че бывает: Сегодня по одному проекту одной вебстудии делал проект небольшой, на их хостинге. На Modx revo. В определенный момент , работая в админке, вдруг перестал р...
Artem
7
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
12
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Кто нибудь либу Zstandart использовал ? Это либа для сжатия от Цукерберга
Andrey Electron
9
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Карта сайта