| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Коллекции |
| Автор: Dino99rus 11.2.2008, 16:48 | ||
Суть задачи передать из одного класса массив объектов в другой. Меня интересует тот вариант который я использую оптимален или нет. Если нет то, какие вариант более подходят под эту задачу. В переменная s2 принимает всего три значения, а s1 любое. |
| Автор: Ctrl 12.2.2008, 01:51 | ||
| Доброго времени суток... * "тот вариант который я использую оптимален или нет" - честно говоря, в твоем коде чего-то вразумительного для решения поставленной тобой задачи я так и не увидел. Я тут написал немного кода - посмотри его, там есть несколько приемов работы с коллекциями (создание,работа через ICollection, копирование, обход элементов с выполнением обработки). Очень надеюсь, что поможет. * "В переменная s2 принимает всего три значения, а s1 любое." - попробуй использовать enum для первого случая (см.пример) ...И на будущее,старайся писать нормальный читабельный код, не думай, что экономишь время называя переменные просто стуча пальцем по клаве... Ну и пример:
|
| Автор: Crimp 12.2.2008, 12:01 |
| Суть задачи передать из одного класса массив объектов в другой. Если цель только в этом то не лучше ли заюзать ArrayList |
| Автор: Ctrl 13.2.2008, 23:20 | ||||||
| Наверное я слишком усложнил смысл фразы "передать из одного класса массив объектов в другой". и не стал думать просто про предачу ссылки на конкретную коллекцию или про копирование ArrayList-ов. Просто иногда за словом "массив" могут скрываться довольно нетривиальные наборы объектов (например, мне в последнее время часто приходится работать с коллекцией, которая на самом деле является иерархической структурой с двумя корнями), и вот тогда "оптимальность" измеряется именно удобством манипулирования содержимым этих наборов. Обеспечивается это удобство именно "заворачиванием" в какойто класс, скрывающий детали. Чем абстрактнее это заворачивание выглядит снаружи, тем лучше. Простейший пример заворачивания приведен в моем куске кода: Основные идеи, заложенные в пример с CollectionSource таковы: 1. нет завязки на структуру коллекций (имплементим свой метод CreateCollection и используем List<>, ArrayList, базу данных, что угодно)
2. удобно копировать содержимое между экземплярами CollectionSource
3. удобно обрабатывать содержимое
P.S. Извини за наезд насчет кода... резануло глаз просто P.S. ... еще про оптимальность - современные программные продукты во главу угла ставят не скорость исполнения кода , а архитектурную гибкость, простоту поддержки и кастомного модифицирования. Уважающие себя компании, предоставляющие исходные коды немало ценят структурированность и читабельность кода, его тестовое покрытие (комментариев кстати в хорошем коде фактически нет) |
| Автор: Dino99rus 14.2.2008, 00:18 | ||
Ctrl,
Большое спасибо. Ну я примерно такого ответа и ожидал |