你好,我一直在努力试图通过其索引切换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 }
任何建议,以另一种可靠的方式来解决它。
只是一个建议:用'名单列表1 =新名单(){8,2,5, 1,1};''和'List list2 = new List (){3,4,1,7,4};'初始化您的列表 –
您误解了Take的用法。说'.Take(3)'给你一个封装器,当你枚举('foreach')时,它将产生列表的前3个元素。它不会修改(从中删除)基础列表。 –