C# 整数列表解决方案

本文关键字:解决方案 列表 整数 | 更新日期: 2023-09-27 17:56:47

我有列表

List<int> listnumbers

{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 } .

在某些情况下,我需要为列表示例中的现有值添加新值,0 => 5,1 => 6 ....

有没有办法做到这一点?

编辑

我要数字

数字 0 有赌注 5数字 1 有赌注 6

但我不能在程序开始时声明,只是在某些情况下我会加入赌注

编辑 2

我将使用多维数组,所以它将

0=>5
1=>6
array[0][0] = 0;
array[0][1] = 5;
array[1][0] = 1;
array[1][1] = 6;

C# 整数列表解决方案

也许这可以满足您的需求。您需要某种数据结构来存储其他信息:

public class NumberLink {
   int Value { get; set; }
   int Link { get; set; }
}
List<NumberLink> numberLinks =
   new List<int> {
      0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
   }
   .Select(i => new NumberLink { Value = i })
   .ToList();
numberLinks.First(nl => nl.Value == 0).Link = 5;
numberLinks.First(nl => nl.Value == 1).Link = 6

请注意,如果您始终有从 0..n 开始的数字范围,则不需要这个。您可以简单地使用项目中项在列表中的位置来表示第一个值,以便列表{ 5, 6 }指示0转到51转到6

如果需要将

一个值替换为另一个值,可以使用 Linq,如下所示:

List<int> list = new List<int>(){0,1,2,3,4,5,6};
var fromValue = 0;
var toValue = 7;
list = list.Select( x => x = (x == fromValue ? toValue : x)).ToList();
//- list = {7,1,2,3,4,5,6}

在这里,Select 语句将改变现有列表并返回一个修改后的整数列表,其中等于 fromValue 的每个值都将替换为 toValue

案例 1。要在列表末尾添加它们,请执行以下操作:

listnumbers.Add(5);
listnumbers.Add(6);

列表将listnumbers ==> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 5, 6 }

案例2.要将它们插入特定位置:

listnumbers.Insert(0, 5);
listnumbers.Insert(0, 6);

列表将listnumbers ==> { 6, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }

案例 3.要将它们插入维护有序列表的位置(最小值到最大值):

listnumbers.Insert(listnumbers.FindIndex(0, x => x == 5) + 1, 5);
listnumbers.Insert(listnumbers.FindIndex(0, x => x == 6) + 1, 6);

列表将被listnumbers ==> { 0, 1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12 },在这种情况下,我在 FindIndex 方法中使用谓词。

我猜你想为列表的每个元素添加一些常量值并将其作为新列表返回。

List<int> answer = listnumbers.Select(x => x+valueToBeAdded).ToList();

上面的语句向列表的所有元素添加一个常量,并将其作为新列表返回。