C# 如何替换字典C中的int值#
我想知道如何用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
- 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可以使用列表
或列表
。根据您的需要,2dint
数组可能就足够了。@JurgenCamilleri抱歉,您是对的-在这种情况下,使用两个不同的键,您必须先删除,然后添加。使用现有键调用Add
将抛出,但使用索引器执行相同操作不会抛出。对不存在的密钥调用Remove
将返回false
,表明未找到该密钥,但不会抛出。是否有其他方法不使用字典来执行此操作?因为我需要做的是使用x