Здравствуйте, Passerby, Вы писали:
P>Здравствуйте, Serginio1, Вы писали: S>> Общие затраты будут практически те же. Ну на MoveNext и Current миллиард вызовов в секунду. Дольше уходит на парсинг строк. P>Так если не сделать сразу коллекцию, то каждый раз когда программе нужны будут данные с IEnumerable будет запускаться новый парсинг (если десериализатор не делает предварительно коллекцию и не кеширует ее). И даже если данные нужны только один раз, какой смысл в IEnumarable, если можно сразу в коллекцию? Только если строка длиннющая или может статься, что не все данные нужны, а только несколько первых, тогда IEnumarable. S>>Можешь закачать куда угодно если заранее известно количество то конечно массив P>Как информация о количестве может повлиять на скорость десериализации? Вместо List объявляется массив, в который десериализуется строка. После десериализации можно посмотреть Length. Скорость зависит от того как реализована десериализация в массив: сразу подсчитывается количество элементов и объявляется массив или сначала десериализуется в список, а потом ToArray(). Хотя и в случае десериализации сразу в массив не факт, что это будет быстрее, т.к. подсчет элементов это лишняя операция, а в случае списка просто добавляется следующий элемент, пока не кончится строка.
Ну всегда можешь сделать ToList или ToArray. Но если тебе нужен отбор по записям то память экономится. IEnumerable универсален.
и солнце б утром не вставало, когда бы не было меня