я следующий код:Еогеасп: (?) переменная цикла не может быть изменен после присвоения
string STR = "AA ABC AA AA ABC aa aa aa AA" ; //declare string
Regex rx = new Regex(@"AA"); // declare regular expression
MatchCollection matches = rx.Matches(STR); // find matches in STR
foreach (Match match in matches)
{
// perform sub-string operations that changes the original string
STR = "AA AA ABC aa aa aa AA" // substring operation which arbitrary changes the string
matches = rx.Matches(STR); // perform matching operation again
// because original string is changed
// ERROR : 'matches' in for loop is not changed (?)
// Question: how can I change 'matches' in for loop, thus it will start
// to work in new modified string ?
}
Может кто-нибудь помочь мне решить выше?
EDIT:
int j = 15
for (int i = 0 to j){
// change both i and j value arbitrarily
i = 100
j = 102
changes is reflected in original for loop
}
В первом случае я хочу, чтобы изменить отражение. Однако изменения в «совпадениях» не отражаются в цикле foreach. Это проблема. Как его решить?
в 'for' петли вы можете изменить, но вы используете' foreach' – Grundy
Изменить код, чтобы быть 'function', который принимает в строке (ваш' STR'), и когда вы хотите изменить ' match', вызовите эту функцию с новой строкой. – NoLifeKing
Изменение коллекции foreach неверно, но ваш код работает для меня отлично. Новое значение присваивается совпадениям четыре раза. – nima