powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сдвиг элементов массива
10 сообщений из 10, страница 1 из 1
Сдвиг элементов массива
    #38573943
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть массив
Код: c#
1.
2.
3.
4.
for (int i=0; i<1000000; i++)
{
	nums[i] = i;
}



Как вставить например такой элемент
nums[100] = 234;
Чтобы все последующие элементы сдвинулись на одну позицию (без переприсваивания элементов)?
...
Рейтинг: 0 / 0
Сдвиг элементов массива
    #38573953
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81Чтобы все последующие элементы сдвинулись на одну позицию (без переприсваивания элементов)?В массиве - никак. Но можно посмотреть на Связный список .
...
Рейтинг: 0 / 0
Сдвиг элементов массива
    #38573972
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
List<int> l = new List<int>();
l.InsertRange(0,nums); 
l.Insert(100, 234);
...
Рейтинг: 0 / 0
Сдвиг элементов массива
    #38574050
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris
Код: c#
1.
2.
3.
List<int> l = new List<int>();
l.InsertRange(0,nums); 
l.Insert(100, 234);


Для таких операций оптимизирован LinkedList .
...
Рейтинг: 0 / 0
Сдвиг элементов массива
    #38574061
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris
Код: c#
1.
2.
3.
List<int> l = new List<int>();
l.InsertRange(0,nums); 
l.Insert(100, 234);

ТСу требуется без переприсваивания элементов
...
Рейтинг: 0 / 0
Сдвиг элементов массива
    #38574131
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВ массиве - никак.
+1

Добавить элемент в массив без "переприсваивания" - ну это как ... вставить звено в цепь без разьединения самой цепи.
...
Рейтинг: 0 / 0
Сдвиг элементов массива
    #38574140
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAPallaris
Код: c#
1.
2.
3.
List<int> l = new List<int>();
l.InsertRange(0,nums); 
l.Insert(100, 234);

ТСу требуется без переприсваивания элементов

А там переприсваивание происходит? Ну... его не видно зато :)
...
Рейтинг: 0 / 0
Сдвиг элементов массива
    #38574201
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisskyANAпропущено...
ТСу требуется без переприсваивания элементов

А там переприсваивание происходит? Ну... его не видно зато :)Учимся читать документацию:

List<T>.Insert Method
Remarks If Count already equals Capacity, the capacity of the List<T> is increased by automatically reallocating the internal array, and the existing elements are copied to the new array before the new element is added.
If index is equal to Count, item is added to the end of List<T>.
This method is an O(n) operation, where n is Count.
...
Рейтинг: 0 / 0
Сдвиг элементов массива
    #38574203
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если MSDN-а мало, то decompiler в помощь
...
Рейтинг: 0 / 0
Сдвиг элементов массива
    #38574528
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81Есть массив
Код: c#
1.
2.
3.
4.
for (int i=0; i<1000000; i++)
{
	nums[i] = i;
}




Как вставить например такой элемент
nums[100] = 234;
Чтобы все последующие элементы сдвинулись на одну позицию (без переприсваивания элементов)?
=)))))))))))))
Код: c#
1.
nums = nums.SelectMany((n, i) => i == 100 ? new[] { 234, i } : new[] { i }).ToArray();
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сдвиг элементов массива
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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