-2

例如

  • 列表包含整数值 34、78、20、10、17、99、101、24、50、13
  • 在位置 1、4 和 5 放置的值是 11
  • 位置是从0开始的索引值
  • 所以最终结果是 => 34, 11, 78, 20, 10, 11, 17, 11, 99, 101, 24, 50, 13

我目前的代码如下:

List<int> list_iNumbers = new List<int>();
list_iNumbers.Add(34);
list_iNumbers.Add(78);
list_iNumbers.Add(20);
list_iNumbers.Add(10);
list_iNumbers.Add(17);
list_iNumbers.Add(99);
list_iNumbers.Add(101);
list_iNumbers.Add(24);
list_iNumbers.Add(50);
list_iNumbers.Add(13);

List<int> list_iPosition = new List<int>();
list_iPosition.Add(1);
list_iPosition.Add(4);
list_iPosition.Add(5);

int iValueToInsert = 11;

现在如何在这些位置插入并获得正确的结果?

4

2 回答 2

8

使用Insert(index, element)方法而不是Add. 像这样的东西:

foreach(var pos in list_iPosition.OrderByDescending(x => x))
    list_iNumbers.Insert(pos, iValueToInsert);

您必须从最后一个索引开始执行此操作,以使其正确。这就是我OrderByDescending第一次使用的原因。

于 2013-07-12T06:55:03.943 回答
1

非 Linq 解决方案:

For(int i = 0; i<count_of_numbers_to_insert; i++)
{
    list_iNumbers.Insert(pos+i, valueToInsert);
}
于 2013-07-12T06:59:32.320 回答