Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамическое изменение размера массива, неужто не предусмотрели????? 
:(
    Опции темы
CompWorm
  Дата 12.1.2009, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



чет поверить не могу...
неуж то в шарпе незя динамически менять размеры многомерного динамического массива? 
вроде такая простейшая вещь...
ну, аналог ReDIM бейсика или SetLength в дельфи ? smile  smile  smile 


--------------------
PM MAIL   Вверх
baldina
Дата 12.1.2009, 02:07 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



низзя!
PM MAIL   Вверх
Partizan
Дата 12.1.2009, 02:22 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



CompWorm, ничего не поделаешь, это flash))))...

Юзайте ArrayList чтоли smile


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
PashaPash
Дата 12.1.2009, 14:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



CompWorm, не, никак нельзя, особенно нельзя заглядывать в MSDN по слову Array и вызывать Array.Resize.


--------------------
PM MAIL WWW   Вверх
CompWorm
Дата 12.1.2009, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



PashaPash, 
хо, хо! я то MSDN читать умею. особенно когда сильно удивлён))
вот, любопытно как вы эту штуку примените именно к многомерному массиву ?


ps а написать процедуру через asm или указатели никто не пробовал для этой цели? все эти эррей листы - уж больно громоздки, да и внутренние алгоритмы их увеличения какие-то неэффективные, как я прочел, и примитивны...
давайте соберемся в хоровод и хором позовем Chingachguk  smile 

Это сообщение отредактировал(а) CompWorm - 12.1.2009, 20:28


--------------------
PM MAIL   Вверх
PashaPash
Дата 12.1.2009, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



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

/// <summary>
/// Method for resizing a multi dimensional array
/// </summary>
/// <param name="original">Original array you want to resize</param>
/// <param name="cols"># of columns in the new array</param>
/// <param name="rows"># of rows in the new array</param>
private void ResizeArray(ref string[,] original, int cols, int rows)
{
    //create a new 2 dimensional array with
    //the size we want
    string[,] newArray = new string[rows, cols];
    //copy the contents of the old array to the new one
    Array.Copy(original, newArray, original.Length);
    //set the original to the new array
    original = newArray;
}

//Example Usage

//This example resizes the list array
//to be 2 columns and 10 rows
ResizeArray(list,2,10);


Цитата(CompWorm @  12.1.2009,  19:48 Найти цитируемый пост)
ps а написать процедуру через asm или указатели никто не пробовал для этой цели? все эти эррей листы - уж больно громоздки, да и внутренние алгоритмы их увеличения какие-то неэффективные, как я прочел, и примитивны...

да, без асм и указателей тут никак. а эррейлисты неэффективны потому, что держат внутри себя массивы. и ресайзят их при необходимости. а массивы сами по себе не ресайзятся, всегда создается новый массив и в него копируется содержимое старого.


--------------------
PM MAIL WWW   Вверх
PashaPash
Дата 12.1.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



З.Ы. И, кстати, redim в бейсике - это просто вызов new [,,,,,] в C#. Redim preserve - вызов Microsoft.VisualBasic.CompilerServices.Utils.CopyArray, вполне можно вписать его и в код на C#.


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.