C#의 사전에서 int 값을 대체 할 수있는 방법이 궁금합니다. 값은 다음과 같습니다. 사전에 int 값을 대체하는 방법 C#
24,35
- 은 내가 하나 개의 라인을 대체 할 수 있는지 궁금했다. 예를 들어 첫 번째 행을 12,12의 새 값으로 바꾸려면 사전에있는 다른 '12'값을 대체하지 않습니다.
C#의 사전에서 int 값을 대체 할 수있는 방법이 궁금합니다. 값은 다음과 같습니다. 사전에 int 값을 대체하는 방법 C#
24,35
첫 번째 줄을 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 위치는 당신이 포인트라는 클래스를 생성 제안하고 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));
사전을 사용하지 않고 다른 방법이 있습니까? – user2306087
@ user2306087 무엇을 찾으 시나요? –
내가 원하는 것은 x와 y 위치를 사용하고, 같은 X 또는 Y를 가지고 있다면 잘못된 값을 대체하기를 원하지 않습니다. – user2306087
Dictionary<TInt, TValue>
가 인덱서로 알려져 있습니다 무엇을 사용합니다 여기에 코드입니다. 이 경우 사전에있는 요소를 키별로 액세스하는 데 사용됩니다.
dict[25]
은 12
을 반환합니다.
이제 원하는 것은 키가 12
이고 값이 12
인 것입니다. 불행하게도, 당신은 키에 의해 사전에 항목을 대체 할 수 없다, 그래서 당신이해야 할 것은 :
if(dict.ContainsKey(25))
{
dict.Remove(25);
}
if(!dict.ContainsKey(12))
{
dict.Add(12, 12);
}
참고 : 사용자가 제공 한 값에서은, 이미 키와 12
와 키 - 값 쌍있다, 따라서 if(!dict.ContainsKey(12))
은 false를 반환하므로 12,12
을 사전에 추가 할 수 없습니다.
사전을 사용하지 않는 다른 방법이 있습니까? 왜냐하면 내가해야 할 일은 x와 y 위치를 사용하고 동일한 X 또는 Y를 사용하기 때문입니다. Y 틀린 값을 바꾸지 않기를 원합니다. – user2306087
'List
"사전으로 입력 한 내용을 키로 대체 할 수 없습니다"- 물론 ContainsKey /! ContainsKey 댄스를 통과 할 필요는 없습니다. 물론 12,12,12,34 둘 다 가질 수는 없습니다 – shambulator
사전에는 키가 고유해야합니다.
키가 고유하지 않아도되는 경우에는 List<Tuple<int, int>>
또는 List<CustomClass>
과 CustomClass
에 두 개의 정수 필드가 포함될 수 있습니다. 그런 다음 원하는 방식으로 추가하거나 바꿀 수 있습니다.
코드를 표시하십시오. 코드 없이는 작동하지 않는 것을 추측 할 수 없습니다. –
이것은 실제로 이해가되지 않습니다. 대체해서 대체 무슨 뜻이야? 무슨 사전 얘기하고있어? 그것은'Dictionary'입니까? 이 경우 : 키당 하나의 항목 만 가질 수 있습니다. –
키마다 하나의 개체를 사용하기를 바랍니다. 값 객체는 목록 또는 배열이 될 수 있기 때문입니다. (까다 롭지 않아 ^^) –