C#整数列表解决方案

时间:2016-07-13 23:04:52

标签: c# list

我有清单

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;

4 个答案:

答案 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转到51转到{ {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方法中使用谓词。