2012-11-19 6 views
40

읽기 전용 필드로 인해 항목의 값을 수정하려고 할 때 문제가 있습니다.KeyValuePair 값을 수정하는 방법은 무엇입니까?

KeyValuePair<Tkey, Tvalue> 

나는 같은 다른 대안을 시도했다 :

Dictionary<Tkey, Tvalue> 

을하지만, 거기에 저도 같은 문제가 있습니다. 값 필드를 새 값으로 설정하는 방법이 있습니까?

+0

dictionry의 특정 값 또는 전부 또는 대부분의 값을 업데이트하려고합니까? – J0HN

+0

특정 값을 업데이트하려고합니다. – Kimbo

답변

73

수정할 수 없으며 새 것으로 바꿀 수 있습니다.

var newEntry = new KeyValuePair<Tkey, Tvalue>(oldEntry.Key, newValue); 

또는 사전에

:

dictionary[oldEntry.Key] = newValue; 
+0

도움 주셔서 감사합니다. 사전이있는 부분이 정확히 내가 필요한 부분입니다. – Kimbo

8

KeyValuePair<TKey, TValue>은 변경할 수 없습니다. 수정 된 키 또는 값으로 새 키를 작성해야합니다. 실제로 수행 할 작업은 시나리오에 따라 다르며 정확히 수행 할 작업은 무엇입니까?

6

듣고 당신은 KeyValuePair가 변경할 수 있도록 만들고 싶어.

맞춤 클래스 만들기.

public class KeyVal<Key, Val> 
{ 
    public Key Id { get; set; } 
    public Val Text { get; set; } 

    public KeyVal() { } 

    public KeyVal(Key key, Val val) 
    { 
     this.Id = key; 
     this.Text = val; 
    } 
} 

그래서 KeyValuePair 어디서나 사용할 수 있습니다.

관련 문제