TryGetValue를 사용하여 내 사전에 데이터를 추가/대체했습니다. new를 추가하는 것과 old를 대체하는 것의 구분을하기 위해 []와 .Add()를 모두 사용합니다.필자도 모두 Dictionary.TryGetValue를 사용해야합니까? 값을 추가/바꾸기 만하면됩니까?
private Dictionary<Foo, Bar> dictionary = new Dictionary<Foo, Bar>();
public void Update(Foo foo)
{
Bar bar;
if (dictionary.TryGetValue(foo, out bar)
{
dictionary [foo] = bar;
}
else
{
dictionary .Add(foo, bar);
}
}
실제로 검색된 값이 아무것도 아냐, 난 위를 교체하지 말아야 이유가있다 : 이것은 내가 실제로 검색 값으로 아무것도하고 있지 않다 경우, 다음과 같은 코드에 이르게 이 코드는? :
public void Update(Foo foo)
{
dictionary[foo] = bar;
}
감사합니다.
_ "위의 코드를이 코드로 바꾸면 안되는 이유가 있을까요?"_ ** No ** ('bar'가 선언되지 않았고 초기화되지 않은 것을 제외하고) –
'var item = dictionary [foo]'는 키가 존재하지 않으면 예외를 던질 것이기 때문에 ('Hashtable'과는 다르게) 누락 된 키에 대해 null이 생길 것을 기대하면서 역순으로 처리합니다. –
두 번째'Update (Foo foo)'메소드에서'bar' 란 무엇입니까? –