컬렉션에 저장해야하는 구조체가 있습니다. 구조체에는 사전을 반환하는 속성이 있습니다.다른 컬렉션 내에서 구조체 컬렉션 속성에 액세스하기
내가 항목을 컬렉션에 추가 한 다음 사전에 액세스하려고 시도하면 구조 값 속성이 업데이트되지 않는다는 것을 발견했습니다.
var collection = new ItemCollection { new Item() }; // pre-loaded with an item
collection[0].Values.Add("myKey", "myValue");
Trace.WriteLine(collection[0].Values["myKey"]); // KeyNotFoundException here
그러나 나는 첫 번째 항목을로드하는 경우 다음 값 필드가 유지되는 컬렉션에 추가합니다.
var collection = new ItemCollection();
var item = new Item();
item.Values.Add("myKey", "myValue");
collection.Add(item);
Trace.WriteLine(collection[0].Values["myKey"]); // ok
는 이미 구조체가이 유형에 대한 잘못된 선택이라고 결정했습니다, 그리고 클래스를 사용할 때 문제가 발생하지 않습니다,하지만 난 두 가지 방법 사이의 차이점에 대해 궁금합니다. 아무도 무슨 일이 일어 났는지 설명 할 수 있니?
msdn doc : 다음은 msdn 예제입니다. http://msdn.microsoft.com/en-us/library/vstudio/8b0bdca4.aspx – Cybermaxs