Перечисление обновленных списков - PullRequest
0 голосов
/ 08 октября 2018

Как я могу перечислить списки обновления броска.Например, у меня есть следующий код:

For I as integer = 0 to MyList.Count-1
.......
.......
Next

, когда я запускаю этот цикл, (MyList) обновляется из другого источника, тогда я получу ошибку «Коллекция была изменена».

Я не хочу останавливать обновление (MyList), а также мне нужен экземпляр списка, отделенный от обновленного.Например: если (MyList) содержит 10 элементов перед тем, как я запускаю цикл For ... Next, и создаю цикл, в котором (MyList), обновленный из внешнего источника, будет 12 элементов, мне нужно запустить For .... Nextтолько для 10 предметов, и я не хочу дополнительные 2 предмета.и в то же время я не хочу потерять эти 2 новых элемента.

Я решил получить копию из (MyList) по следующему коду:

 m.ToList.AsEnumerable

, потому что (MyList) 'iEnumerable (Of DataRow)', но я также получил ту же ошибку "Коллекция была изменена"

Любая идея ??

1 Ответ

0 голосов
/ 08 октября 2018

Если вам нужно перечислить список, в то время как другие потоки могут изменять его, один из вариантов - просто скопировать его (в C #, так как я не владею VB):

var list = new List<int>(MyList);
for(int i = 0; i < list.Count; i++)
{
    // process your original items 
    // regardless of whether someone adds or removes from 'MyList'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...