c# - Assignment of value to specified index in array has no effect -
i have created minimal example reproducing problem (or rather misunderstanding):
string text = @"eaisjdoaisjdoaisjdai_osjdaisodjasizzi_ojiozaziasjz_"; int[] score = new int[123]; foreach(char letter in text) { int val = score[letter]; //give me value stored @ index score[letter] = val++; //increment , store array @ index } ...
debugging through above, val
correctly being assigned value @ specified index of array. when incremented, val
not assigned array. why that?
the picture shows immediate window evaluating value of val
when retrieving array, value of score[letter]
after being assigned , incremented value of val
i'm doing stupid can't quite figure out what.
this because using post-increment operator, increments value after returning it.
change pre-increment operator ++val
, should work.
from ++ operator documentation:
the first form (
++val
) prefix increment operation. result of operation value of operand after has been incremented.the second form (
val++
) postfix increment operation. result of operation value of operand before has been incremented.
Comments
Post a Comment