Код: Выделить всё
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
at System.String.Join[T](String separator, IEnumerable`1 values)
at FormatLoDestStatus(ImmutableDictionary`2 loDestStatus)
in C:\Formatter.cs:line 117
Код: Выделить всё
public string FormatLoDestStatus(ImmutableDictionary loDestStatus)
{
List result = new List();
foreach (var status in loDestStatus)
{
string value = string.Join(",", status.Value).TrimEnd();
var formatted = $"{status.Key}S{value}"; // This is place where it gives invalid operation
if (Regex.IsMatch(formatted, _patternCollection.LoDestStatusPattern)
&&
Regex.IsMatch(value, _patternCollection.UnAvailableLevelsPattern))
{
result.Add(formatted);
}
}
return string.Join(":", result);
}
Что на самом деле происходит не так и как я могу это решить? (Я предполагаю, что если у меня есть ImmutableDictionary, он потокобезопасен, и исходный неизменяемый словарь loDestStatus не должен быть изменен).
Подробнее здесь: https://stackoverflow.com/questions/789 ... -operation
Мобильная версия