Здравствуйте, я работаю над попыткой переключения элементов из 2-х целых чисел по индексу. Мой первый список и второй список имеют следующие значения.Переключение элементов между списками
list1 = {8, 2, 5, 1, 1}
list2 = {3, 4, 1, 7, 4}
Я пытаюсь переключить первые 3 элемента в обоих списках и получить выходные данные следующим образом.
list1 = {3, 4, 1, 1, 1}
list2 = {8, 2, 5, 7, 4}
Вот мой код до сих пор:
List<int> list1 = new List<int>();
List<int> list2 = new List<int>();
list1.Add(8);
list1.Add(2);
list1.Add(5);
list1.Add(1);
list1.Add(1);
list2.Add(3);
list2.Add(4);
list2.Add(1);
list2.Add(7);
list2.Add(4);
int index = 3;
var firstPairItems = list1.Take(index);
var secondPairItems = list2.Take(index);
list1.InsertRange(indexPairs,secondPairItems);
list2.InsertRange(indexPairs, firstPairItems);
Я думаю, что я на правильном пути, но вместо того, чтобы заменить его на первые 3 индекса он вроде добавляет значения в индексе. Вывод прямо сейчас из списка1-
list1 = {8, 2, 5, 3, 4, 1, 1, 1 }
Любые предложения по другому надежному способу его решения.
просто предложение: использовать 'List песни1 = новый список () {8, 2, 5, 1, 1}; 'и' List list2 = new Список () {3, 4, 1, 7, 4}; 'для инициализации ваших списков –
Вы неправильно поняли использование' Take'. Выражение '.Take (3)' дает вам обертку, которая будет давать ** top-3 ** элементы списка, когда вы перечисляете ('foreach') через него. Он не изменяет (удаляет) базовый список. –