| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Изменение размерности массива |
| Автор: Gesha 17.3.2006, 10:17 |
| Мне надо заполнить двумерный массив некоторыми строками. Я знаю количество столбцов (т.е. один из размеров массива), но я не знаю количество строк!!! Т.е. есть данные типа ааа ббб ввв гггг ппп ввв ддд ккк ..... Можно ли как-то налету менять второй размер массива? Array.Resize со String[,] вроде не работает! Рассомтрю любые варианты! |
| Автор: mr.DUDA 17.3.2006, 10:27 | ||
Более менее эффективный способ - сделать ArrayList, куда складывать массивы строк. Потом превратить в массив массивов строк. Пример:
Если нужен не массив массивов, а двумерный массив (т.е. надо не "string[][]", а "string[,]"), то наращивать и копировать придётся вручную, каждый раз создавая массив заново с новыми размерами. |
| Автор: Gesha 17.3.2006, 10:29 | ||
Вот пример для одномерного массива:
Мне бы что-то подобное, только для [,] (где [не знаю заранее , знаю заранее]) Или как-нибудь еще.............. |
| Автор: Gesha 17.3.2006, 10:47 |
| mr.DUDA, Я уже думал про ArrayList. Просто не хотел [][]. Видать таки прийдется... Спасибо за помощь! |
| Автор: mr.DUDA 17.3.2006, 11:31 |
| Просто [,] - это на самом деле обычный [], а его двумерность - это синтаксический сахар, не более... Странно, конечно, что в фреймворке не сделали Array.Resize(params int[] newSizes) или наподобие того. |
| Автор: mr.DUDA 20.3.2006, 10:41 | ||
| Я вообще-то другое имел ввиду. Что-то наподобие:
|
| Автор: -ser- 21.3.2006, 05:59 |
| mr.DUDA, да я тебя понял. ты и сам не хуже их справляешься, я не сомневался. А не написали они, мое мнение, потому, что в управляемой среде куда эффективнее использовать массивы массивов, чем многомерные, которые они и оставили только для совместимости. А кто хочет, может дописывать собственные методы ресайзинга, и проч., кто во что горазд, мы мол, все равно ничего кардинально лучшего предложить здесь не можем. |
| Автор: mr.DUDA 21.3.2006, 08:33 |
| Согласен. |