2014-01-14 5 views
1

의 값으로 구조 사전 져야 할 엔트리를 변경 나는이 구조 사전 ...Visual Basic에서 2012

어느 시점에서 각 루프에 대해 사전의 값을 변경하고 싶습니다.

문제가 해결되지 않는 몇 가지 이유를 들어

...

오류 코드는 다음과 같습니다 식의 값이므로 할당의 대상이 될 수 없습니다.

사전에 이미 존재하는 값을 변경하는 것이 가능합니까?

친절히 알려주세요. 그리고 감사합니다.

답변

1

값 유형으로 수행하려는 작업을 수행 할 수 없지만 구조를 읽은 다음 다시 전달하면 원하는 작업을 수행 할 수 있습니다.

For Each element As KeyValuePair(Of Integer, SourceDB) In MySourceDBDictionary 
     Dim src = MySourceDBDictionary(element.Key) 
     src.LastTransmittedId = 0 
     MySourceDBDictionary(element.Key) = src 
    Next 

이 새로운 '가치'당신이 Reference Type 대신, 즉 Class 대신 StructureValue Type (A)의를 사용하는 경우

가 또는 당신은 당신이 가지고있는 코드를 사용할 수와 전체 값 유형을 대체합니다. 나는이 대신이 생성 후 값을 수정하는 등의 구조의 클래스해야한다고 제안

문제는 구조에
2

이 질문에 Expression Is a value and therefore cannot be the target of an assignment

에서 살펴 위의 질문은이어야한다

: 당신이 일을해야 Class 및 코드로 구조체를 변경

Structure

를 사용해야하는 경우에 좋은 설명, 또한 조금 그런 뭔가를해야만하기 위해 foreach 루프를 변경할 수 있습니다3210
For Each element As KeyValuePair(Of Integer, SourceDB) In MySourceDBDictionary 
     element.Value.LastTransmittedId = 0 
    Next