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;
也许这可以满足您的需求。您需要某种数据结构来存储其他信息:
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
转到5
,1
转到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();
上面的语句向列表的所有元素添加一个常量,并将其作为新列表返回。