AvalonStudio.Debugging.LocalsViewModel.InvalidateLocals C# (CSharp) Method

InvalidateLocals() public method

public InvalidateLocals ( List variables ) : void
variables List
return void
		public void InvalidateLocals(List<Variable> variables)
		{
			var updated = new List<Variable>();
			var removed = new List<Variable>();

			for (var i = 0; i < locals.Count; i++)
			{
				var local = locals[i];

				var currentVar = variables.FirstOrDefault(v => v.Name == local.Name);

				if (currentVar == null)
				{
					removed.Add(local);
				}
				else
				{
					updated.Add(local);
				}
			}

			foreach (var variable in variables)
			{
				var currentVar = updated.FirstOrDefault(v => v.Name == variable.Name);

				if (currentVar == null)
				{
					locals.Add(variable);
					AddWatch(variable.Name);
				}
			}

			foreach (var removedvar in removed)
			{
				locals.Remove(removedvar);
				RemoveWatch(Children.FirstOrDefault(w => w.Name == removedvar.Name));
			}
		}