我有清单
List<int> listnumbers
值为{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }
。
在某些情况下,我需要为列表示例中的现有值添加新值,0 =&gt; 5,1 =&gt; 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;
答案 0 :(得分:2)
也许这可以做你想要的。您需要某种数据结构来存储其他信息:
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
转到{ {1}}。
答案 1 :(得分:0)
我猜你想为列表的每个元素添加一些常量值并将其作为新列表返回。
List<int> answer = listnumbers.Select(x => x+valueToBeAdded).ToList();
上述语句为列表的所有元素添加一个常量,并将其作为新列表返回。
答案 2 :(得分:0)
如果你需要替换一个值,你可以使用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
答案 3 :(得分:0)
案例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 }
CASE 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方法中使用谓词。