Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ? / 25 сообщений из 30, страница 1 из 2
19.08.2015, 11:40
    #39032174
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
Привет.

Мне нужно чтобы функция возвращала IEnumerable "чего-то".
Это "чего-то" я могу объявить классом или структурой.

Есть ли выигрыш, если сделать структурой ? Или выигрыш появляется только если работа идет с единственным элементом - и тогда его имеет смысл объявлять структурой ?

Ну и вообще есть ли смысл в List<структура> где бы то ни было ?
Ну и еще. Выигрыш появляется И когда принимать структуру И когда возвращать, или только когда принимается ?
...
Рейтинг: 0 / 0
19.08.2015, 11:49
    #39032180
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
Смысл появится только тогда (или его отсутствие станет очевидным), когда ты осознаешь, для чего это делается.
...
Рейтинг: 0 / 0
19.08.2015, 12:00
    #39032190
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
Antonariy,

Мне нужно чтобы функция распарсила файл. А на выход выдала пары:
1. дата начала
2. дата конец.

Вот эту пару хочу обернуть - либо в класс, либо в структуру.

Их там много в файле. Соответственно, функция будет возвращать СПИСОК этих пар.

Объединять ли эти пары в структуру или класс?
Мне вообще не совсем ясно есть ли выигрыш от Листа (находящегося в куче), который держит ссылки на структуры в стеке. Есть сомнения в выигрыше вообще. Тем более сомнения связаны с тем, что функция должна возвращать этот список. А не принимать.

Что скажете ?
...
Рейтинг: 0 / 0
19.08.2015, 12:02
    #39032192
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
PS. А ведь есть же специальная генерик структура, с разным количеством параметров. Забыл ее название.
Которую можно использовать, чтобы не создавать свой тип структуры. Можно вот ее использовать.

Но вопрос остается - нужен ли СПИСОК этих структур.
...
Рейтинг: 0 / 0
19.08.2015, 12:03
    #39032193
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
Если просто создать список - то без разницы. Если потом будет адовая работа с этим списком, то лучше массив структур.
...
Рейтинг: 0 / 0
19.08.2015, 12:05
    #39032197
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
Antonariy,

Вспомнил. Tuple зовется структура.

Работы со структурами не будет какой-то большой. Простая проверка на попадание в дату. И все, после этого список не нужен.
...
Рейтинг: 0 / 0
19.08.2015, 12:07
    #39032201
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
ProBiotekAntonariy,

Вспомнил. Tuple зовется структура.

Работы со структурами не будет какой-то большой. Простая проверка на попадание в дату. И все, после этого список не нужен.тогда что удобней и быстрей накодить.
...
Рейтинг: 0 / 0
19.08.2015, 12:18
    #39032213
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
ок. тогда просто Tuple. Плюс в том, что не придется делать отдельного описания типа.
все равно этот набор возвращается лишь в одном месте. Нету смысла выделять в целый именованный класс.
...
Рейтинг: 0 / 0
19.08.2015, 12:34
    #39032232
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
ProBiotek,
Tuple работает с классами, а не структурами - если что.
...
Рейтинг: 0 / 0
19.08.2015, 12:42
    #39032246
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
AxeleronProBiotek,
Tuple работает с классами, а не структурами - если что.
WUT?
Код: c#
1.
var t = Tuple.Create(123, DateTime.Now);


- вполне нормально компилируется. Документация мало того, что не говорит о таких ограничениях - в ней самой же есть примеры, где фигурирует Tuple со структурными типами.
...
Рейтинг: 0 / 0
19.08.2015, 12:48
    #39032255
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
Сон Веры Павловны,
Я неправильно выразился. Имел в виду, что Tuple - сам по себе класс.
...
Рейтинг: 0 / 0
19.08.2015, 12:50
    #39032259
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
AxeleronСон Веры Павловны,
Я неправильно выразился. Имел в виду, что Tuple - сам по себе класс.

Пожалуй сойдет.
Все одно, выгодны в List<struct> не обнаружено в случае возврата десятка пар дат, зато создавать именованный тип не придется.
...
Рейтинг: 0 / 0
19.08.2015, 15:20
    #39032496
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
ProBiotekЕсть ли выигрыш, если сделать структурой ? Или выигрыш появляется только если работа идет с единственным элементом - и тогда его имеет смысл объявлять структурой ?
Будет большой выигрыш по памяти в случае использования структур. Читать .

ProBiotekМне нужно чтобы функция распарсила файл. А на выход выдала пары
Можно использовать структуру System.Collections.Generic.KeyValuePair.
Tuple, как уже было сказано, является классом .

ProBiotekесть ли выигрыш от Листа (находящегося в куче), который держит ссылки на структуры в стеке.

Все структуры будут в куче, компактно, одна за одной.
...
Рейтинг: 0 / 0
19.08.2015, 15:22
    #39032499
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
В целом, я бы посоветовал создать специальный класс с говорящим названием.
Чтобы получить профит от структур их надо уметь готовить. А судя по уровню задаваемых вопросов, возникают сомнения.
...
Рейтинг: 0 / 0
19.08.2015, 15:47
    #39032531
Denis.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
ProBiotek... от Листа (находящегося в куче), который держит ссылки на структуры в стеке. ...
Что скажете ?
Скажем что ты пока плоховато разобрался в том о чем говоришь
...
Рейтинг: 0 / 0
19.08.2015, 16:59
    #39032614
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
petalvik,
Denis.

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

petalvikProBiotekесть ли выигрыш от Листа (находящегося в куче), который держит ссылки на структуры в стеке.

Все структуры будут в куче, компактно, одна за одной.

Я так понимаю, будут рядом чисто за счет того, что Лист внутри себя использует массив ? В классическом понимании связанных списков то они вовсе не обязательно будут рядом.

Выходит, что вообще проще оперировать массивами :)
...
Рейтинг: 0 / 0
19.08.2015, 17:06
    #39032621
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
ProBiotekТогда однозначно получается что структура даже противопоказана , т.к. будет лишний боксинг. не ?
В generic-листе никакого боксинга не будет.
...
Рейтинг: 0 / 0
19.08.2015, 17:12
    #39032629
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
ProBiotekКакой тогда смысл использовать списки структур, если они все равно улетают в кучу, как и класс ?
Тогда однозначно получается что структура даже противопоказана , т.к. будет лишний боксинг. не ?

В классическом понимании связанных списков то они вовсе не обязательно будут рядом.
В любой generic-коллекции боксинга структур не будет. Это специальная чёрная магия платформы .NET. Именно поэтому СиШарпо-бояре всегда свысока смотрели на Джава-холопов.
...
Рейтинг: 0 / 0
19.08.2015, 17:13
    #39032630
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
Сон Веры ПавловныProBiotekТогда однозначно получается что структура даже противопоказана , т.к. будет лишний боксинг. не ?
В generic-листе никакого боксинга не будет.

Да ? А как структура, находящаяся в List<> улетит в кучу без боксинга ?
...
Рейтинг: 0 / 0
19.08.2015, 17:14
    #39032632
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
ProBiotekДа ? А как структура, находящаяся в List<> улетит в кучу без боксинга ?

В кучу улетит массив структур
...
Рейтинг: 0 / 0
19.08.2015, 17:18
    #39032634
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
Pallaris,

однако. ну тогда, выгода от структур в списке будет:

- со структурами в кучу улетит массив структур. Одним неразделенным куском
- с классами в кучу улетит массив указателей - на кучу объектов размазанных по всей куче.

Хм.
...
Рейтинг: 0 / 0
19.08.2015, 17:18
    #39032637
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
В случае с объектами для листа в куче будет массив ссылок на объекты, которые будут разбросаны по куче и для доступа к ним нужно будет эти ссылки разыменовать
...
Рейтинг: 0 / 0
19.08.2015, 18:12
    #39032693
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
ProBiotek,

Универсальные типы во время выполнения . Если владеешь английским, то лучше в оригинале почитать, потому что перевод на русский корявый.
...
Рейтинг: 0 / 0
19.08.2015, 20:58
    #39032757
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
как я понял, автор просто думал, что структуры могут храниться только в стеке?
...
Рейтинг: 0 / 0
20.08.2015, 06:12
    #39032822
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ? / 25 сообщений из 30, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]