如何替换字典中的int值C#

时间:2013-04-22 05:43:45

标签: c#

我想知道如何在C#中替换字典中的int值。 值看起来像这样。

  • 25,12
  • 24,35
  • 12,34
  • 34,12

我想知道如何才能更换一条线。例如,如果我想用新值12,12替换第一行。并且它不会取代字典中的任何其他“12”值。

3 个答案:

答案 0 :(得分:3)

Dictionary<TInt, TValue>使用所谓的索引器。在这种情况下,这些用于按键访问字典中的元素,因此:

dict[25]会返回12

现在,根据您要做的是拥有12的密钥和12的值。不幸的是,你不能用密钥替换字典中的条目,所以你必须做的是:

if(dict.ContainsKey(25))
{
    dict.Remove(25);
}
if(!dict.ContainsKey(12))
{
    dict.Add(12, 12);
}

注意:在您提供的值中,已有一个以12为键的键值对,因此您无法添加12,12字典if(!dict.ContainsKey(12))将返回false。

答案 1 :(得分:1)

您无法将第一行替换为12, 12,因为还有另一个键值对,其中12为键。你不能在字典中有重复的密钥。

无论如何,你可能会做这样的事情:

Dictionary<int, int> myDictionary = new Dictionary<int, int>();
myDictionary.Add(25, 12);
myDictionary.Add(24, 35);

//remove the old item
myDictionary.Remove(25);

//add the new item
myDictionary.Add(12, 12);

编辑:如果您要保存一些x,y位置,我建议您创建一个名为Point的类并使用List<Point>。这是代码:

class Point
{
    public double X {get; set;}
    public double Y {get; set;}

    public Point(double x, double y)
    {
        this.X = x;
        this.Y = y;
    }
}

然后:

List<Point> myList =new List<Point>();
myList.Add(new Point(25, 13));

答案 2 :(得分:0)

在词典中,键必须是唯一的。

如果密钥不必是唯一的,您可以使用List<Tuple<int, int>>List<CustomClass>CustomClass包含两个整数字段。然后你可以添加或替换你想要的方式。