Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как вставить элемент в массив? / 25 сообщений из 43, страница 1 из 2
13.05.2016, 11:29
    #39234986
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Код: c#
1.
string[] s = new[] {"1", "2", "3"};



Как вставить элемент "5" в существующий массив, чтобы стало: "1","5","2","3"?
...
Рейтинг: 0 / 0
13.05.2016, 11:30
    #39234987
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Ролг Хупин,
Никак! Массивы не изменяемые.
...
Рейтинг: 0 / 0
13.05.2016, 11:31
    #39234993
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
создать новый массив
...
Рейтинг: 0 / 0
13.05.2016, 11:38
    #39235000
sanekoffice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Если не принципиально, то лучше использовать коллекции. Там есть тетод Insert
...
Рейтинг: 0 / 0
13.05.2016, 11:52
    #39235016
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
sanekofficeЕсли не принципиально, то лучше использовать коллекции. Там есть тетод Insert
Вот у этой , например, такого метода нет. Как и у многих других, реализующих ICollection/ICollection<T> - потому как у этих интерфейсов нет такого метода.
...
Рейтинг: 0 / 0
13.05.2016, 11:57
    #39235020
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Сон Веры ПавловныsanekofficeЕсли не принципиально, то лучше использовать коллекции. Там есть тетод Insert
Вот у этой , например, такого метода нет. Как и у многих других, реализующих ICollection/ICollection<T> - потому как у этих интерфейсов нет такого метода.
По правде сказать у коллекций вообще нет метода Insert, он есть у IList<T>/IList.
Array реализует последний, но вставить все равно не получиться)
...
Рейтинг: 0 / 0
13.05.2016, 12:03
    #39235026
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
если вопрос чисто академический, то нужно
А) Создать новый массив размером = размер старого + 1
Б) с помощью метода Array.Copy скопировать левую часть и правую часть массива в новый и задать новый элемент.
или ручками всё сделать =)
...
Рейтинг: 0 / 0
13.05.2016, 13:03
    #39235088
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
ЕвгенийВПо правде сказать у коллекций вообще нет метода Insert
Вроде как я именно об этом:
Сон Веры ПавловныКак и у многих других, реализующих ICollection/ICollection<T> - потому как у этих интерфейсов нет такого метода.
ЕвгенийВон есть у IList<T>/IList.
IList/IList<T> расширяют ICollection/ICollection<T> соответственно. Если IList не является коллекцией, то нужно определиться с терминологией - что же всё-таки является коллекцией. Я всегда считал, что коллекция - это то, что имплементит ICollection/ICollection<T>.
...
Рейтинг: 0 / 0
13.05.2016, 13:30
    #39235112
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Сон Веры ПавловныВроде как я именно об этом:

Да сорри, не дочитал, старею.
Сон Веры ПавловныКак и у многих других, реализующих ICollection/ICollection<T> - потому как у этих интерфейсов нет такого метода.
Сон Веры ПавловныIList/IList<T> расширяют ICollection/ICollection<T> соответственно. Если IList не является коллекцией, то нужно определиться с терминологией - что же всё-таки является коллекцией. Я всегда считал, что коллекция - это то, что имплементит ICollection/ICollection<T>.
Лист тоже является коллекцией, но коллекция не является листом.
...
Рейтинг: 0 / 0
13.05.2016, 13:36
    #39235120
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Сон Веры ПавловныЕвгенийВПо правде сказать у коллекций вообще нет метода Insert
Вроде как я именно об этом:
Сон Веры ПавловныКак и у многих других, реализующих ICollection/ICollection<T> - потому как у этих интерфейсов нет такого метода.
ЕвгенийВон есть у IList<T>/IList.
IList/IList<T> расширяют ICollection/ICollection<T> соответственно. Если IList не является коллекцией, то нужно определиться с терминологией - что же всё-таки является коллекцией. Я всегда считал, что коллекция - это то, что имплементит ICollection/ICollection<T>.всё относительно, у Collection<T> и ObservableCollection<T> Insert есть и имплиментирует он IList<T>, ICollection<T> и IEnumerable<T> и т.д. Но называется то коллекцией :)
...
Рейтинг: 0 / 0
18.05.2016, 07:42
    #39237846
Ermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
В данном конкретном случае студент может поступить так.

Код: c#
1.
2.
3.
4.
  string[] s = new string[] {"1", "2", "3"};
  List<string> l = new List<string>(s);
  l.Insert(1, "5");
  s =  l.ToArray();



PS. Но с темой коллекций в c# студенту все же придется разобраться.
...
Рейтинг: 0 / 0
18.05.2016, 08:19
    #39237859
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
s = s.ToList().Insert(...).ToArray()
...
Рейтинг: 0 / 0
18.05.2016, 08:21
    #39237860
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Предыдущее сообщение не читать, Insert не вернет коллекцию
...
Рейтинг: 0 / 0
18.05.2016, 08:41
    #39237867
void33
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Ermak,
и сколько же тут алокаций будет на куче?
...
Рейтинг: 0 / 0
18.05.2016, 08:45
    #39237868
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
void33Ermak,
и сколько же тут алокаций будет на куче?
...
Рейтинг: 0 / 0
18.05.2016, 08:45
    #39237869
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Вам шашечки или ехать?
...
Рейтинг: 0 / 0
18.05.2016, 08:53
    #39237875
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Листы вместо массива передайте куда-нибудь, например в Direct3D .....
...
Рейтинг: 0 / 0
18.05.2016, 09:26
    #39237899
Ermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
авторErmak,
и сколько же тут алокаций будет на куче?


Студенты аллокаций на куче не считают.

PS. Студент запросил помощь. Студент получил помощь, соизмеримую с его уровнем владением предмета.
...
Рейтинг: 0 / 0
18.05.2016, 09:44
    #39237920
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
ErmakавторErmak,
и сколько же тут алокаций будет на куче?


Студенты аллокаций на куче не считают.

PS. Студент запросил помощь. Студент получил помощь, соизмеримую с его уровнем владением предмета.
Вообще-то студентам про структуры данных рассказывают в институтах, так что не стесняйтесь :)
...
Рейтинг: 0 / 0
18.05.2016, 10:03
    #39237951
Ermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
авторВообще-то студентам про структуры данных рассказывают в институтах, так что не стесняйтесь :)

Согласен

ErmakPS. Но с темой коллекций в c# студенту все же придется разобраться.

PPS. Оставляю данную тему, студенту для самостоятельной работы ;)
...
Рейтинг: 0 / 0
18.05.2016, 11:15
    #39238041
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
ErmakВ данном конкретном случае студент может поступить так.

Код: c#
1.
2.
3.
4.
  string[] s = new string[] {"1", "2", "3"};
  List<string> l = new List<string>(s);
  l.Insert(1, "5");
  s =  l.ToArray();



PS. Но с темой коллекций в c# студенту все же придется разобраться.

Ваш пример, коллега, пересыпает массив из одного места в другое, так и я могу. А вопрос был по вставке в середину, т.е. с минимумом "колбасинга"
...
Рейтинг: 0 / 0
18.05.2016, 11:20
    #39238050
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Ролг ХупинА вопрос был по вставке в середину, т.е. с минимумом "колбасинга"


С минимумом колбасинга не получится. Можно еще извращаться в плане заранее создать массив на 1 элемент больше (последний элемент = 0), выводимый размер - на 1 меньше. Когда надо вставить, то банальный сдвиг и вставка, выводимый размер += 1. Но надо ли такое извращение?
...
Рейтинг: 0 / 0
18.05.2016, 13:46
    #39238214
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Для вставки и удаления лучше подходит LinkedList
...
Рейтинг: 0 / 0
18.05.2016, 14:32
    #39238275
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Вот как надо в массив член вставлять!
Код: c#
1.
2.
            var массив = (new List<int>() { 1, 2, 3 });
            массив.Insert(0, 0);
...
Рейтинг: 0 / 0
18.05.2016, 14:41
    #39238293
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить элемент в массив?
Cat2Вот как надо в массив член вставлять!
Извиняюсь за оффтопСильно сказано. Элементы без члена это как-то неправильно
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как вставить элемент в массив? / 25 сообщений из 43, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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