private void RemoveIfExists(DetectedRobot robot) { lock (_robotsLock) { if (!_robots.Any(r => r == robot)) { return; } var target = _robots.FirstOrDefault(r => r == robot); if (target != null) { _robots.Remove(target); } } }
private void AddOrUpdate(DetectedRobot robot) { lock (_robotsLock) { if (!_robots.Any(r => r == robot)) { _robots.Add(robot); return; } if (robot.IsRealRobot) { var target = _robots.FirstOrDefault(r => r == robot); target.IsRealRobot = true; } } }