Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何替换字典C中的int值#_C# - Fatal编程技术网

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

C# 如何替换字典C中的int值#,c#,C#,我想知道如何用C#替换字典中的int值。 这些值看起来像这样 25,12 24,35 12,34 34,12 我在想我怎么只能换一条线。例如,如果我想用新值12,12替换第一行。而且它不会替换字典中的任何其他“12”值。您不能将第一行替换为12,12,因为还有另一个键-值对以12作为键。字典中不能有重复的键 无论如何,你可以这样做: Dictionary<int, int> myDictionary = new Dictionary<int, int>(); myDi

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

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

我在想我怎么只能换一条线。例如,如果我想用新值12,12替换第一行。而且它不会替换字典中的任何其他“12”值。

您不能将第一行替换为
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);
然后:

List myList=new List();
添加(新的点(25,13));

您不能将第一行替换为
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);
然后:

List myList=new List();
添加(新的点(25,13));
A
字典
使用了所谓的索引器。在这种情况下,这些用于通过键访问字典中的元素,因此:

dict[25]
将返回
12


现在,根据您想要做的,是将键设置为
12
,值设置为
12
。不幸的是,您无法用键替换字典中的条目,因此必须执行以下操作:

if(dict.ContainsKey(25))
{
    dict.Remove(25);
}
if(!dict.ContainsKey(12))
{
    dict.Add(12, 12);
}
注意:在您提供的值中,已经有一个键值对,其键值为
12
,因此,如果(!dict.ContainsKey(12))返回false,则不允许将
12,12
添加到字典中,因为
将使用已知的索引器。在这种情况下,这些用于通过键访问字典中的元素,因此:

dict[25]
将返回
12


现在,根据您想要做的,是将键设置为
12
,值设置为
12
。不幸的是,您无法用键替换字典中的条目,因此必须执行以下操作:

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

注意:在您提供的值中,已经有一个键值对,其键为
12
,因此如果(!dict.ContainsKey(12))
返回false,则不允许将
12,12
添加到字典中,因为

在字典中,键必须是唯一的


如果键不需要是唯一的,则可以使用包含两个整数字段的
列表
列表
。然后您可以添加或替换所需的键。

在字典中,键必须是唯一的



如果键不需要是唯一的,则可以使用包含两个整数字段的
列表
列表
。然后,您可以添加或替换所需的方式。

请显示代码-如果没有它,您无法猜测什么是不起作用的。这真的没有意义。你说的替换是什么意思?你在说什么词典?它是不是字典?在这种情况下:每个键只能有一个条目。我希望您的意思是每个键有一个对象。因为值对象可以是列表或数组。(不要吹毛求疵^^^)您正在尝试替换键或值吗?我希望有一个更详细的问题示例。请显示代码-不可能猜测没有它什么不起作用。这真的没有意义。你说的替换是什么意思?你在说什么词典?它是不是字典?在这种情况下:每个键只能有一个条目。我希望您的意思是每个键有一个对象。因为值对象可以是列表或数组。(不要挑剔^^^)您是否正在尝试替换键或值?我希望有一个更详细的问题示例。是否有其他方法(不使用字典)?@user2306087您在寻找什么?我想做的是使用x和y位置,如果我有相同的x或y,我不希望它替换错误的值。谢谢,我会试试这个。我得到一个错误:“My_Project.Point”不包含一个接受1个参数的构造函数。还有其他方法吗(不使用字典)?@user2306087你在找什么?我想做的是使用x和y位置,如果我有相同的x或y,我不希望它替换错误的值。谢谢,我将尝试此方法。我得到错误:“My_Project.Point”不包含接受1个参数的构造函数。是否有其他方法不使用字典来执行此操作?因为对于我需要做的事情,它使用x和y位置,如果我有相同的x或y,我不希望它替换错误的值。
List
或者如果你使用System.Drawing
可能
List
“你不能用键替换字典中的条目”-使用索引器?你当然可以。没必要穿过那个集装箱!康纳斯基舞。当然,它仍然不允许您同时拥有12,12和12,34。@shambulator我的意思是,您不能在一个步骤中将键值对
25,12
更改为
12,12
,您必须删除并添加,据我所知,试图添加一个已经存在的键会抛出一个
ArgumentException
,而用一个不存在的键删除一个键值对会抛出一个
KeyNotFoundException
@正如Corak所说,用户2306087可以使用
列表
列表
。根据您的需要,2d
int
数组可能就足够了。@JurgenCamilleri抱歉,您是对的-在这种情况下,使用两个不同的键,您必须先删除,然后添加。使用现有键调用
Add
将抛出,但使用索引器执行相同操作不会抛出。对不存在的密钥调用
Remove
将返回
false
,表明未找到该密钥,但不会抛出。是否有其他方法不使用字典来执行此操作?因为我需要做的是使用x