diff --git a/Directory.Build.props b/Directory.Build.props
index 88ce75a2..700b2a64 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -25,6 +25,6 @@
-
+
diff --git a/samples/Videra.InteractionSample/Views/MainWindow.axaml.cs b/samples/Videra.InteractionSample/Views/MainWindow.axaml.cs
index 6e173046..e88883ff 100644
--- a/samples/Videra.InteractionSample/Views/MainWindow.axaml.cs
+++ b/samples/Videra.InteractionSample/Views/MainWindow.axaml.cs
@@ -280,24 +280,18 @@ private void ApplySelectionRequest(SelectionRequestedEventArgs e)
selected = e.ObjectIds.Distinct().ToList();
break;
case VideraSelectionOperation.Add:
- foreach (var objectId in e.ObjectIds)
- {
- if (!selected.Contains(objectId))
- {
- selected.Add(objectId);
- }
- }
-
+ selected.AddRange(e.ObjectIds.Where(objectId => !selected.Contains(objectId)));
break;
case VideraSelectionOperation.Toggle:
- foreach (var objectId in e.ObjectIds)
+ selected = e.ObjectIds.Aggregate(selected, (current, objectId) =>
{
- if (!selected.Remove(objectId))
+ if (!current.Remove(objectId))
{
- selected.Add(objectId);
+ current.Add(objectId);
}
- }
+ return current;
+ });
break;
default:
throw new ArgumentOutOfRangeException(nameof(e), e.Operation, "Unknown selection operation.");
diff --git a/src/Videra.SurfaceCharts.Core/ScatterChartData.cs b/src/Videra.SurfaceCharts.Core/ScatterChartData.cs
index 1fc8cfe3..29e8b913 100644
--- a/src/Videra.SurfaceCharts.Core/ScatterChartData.cs
+++ b/src/Videra.SurfaceCharts.Core/ScatterChartData.cs
@@ -123,12 +123,9 @@ private static int ValidateAndCountPoints(
}
totalCount += scatterSeries.Points.Count;
- foreach (var point in scatterSeries.Points)
+ if (scatterSeries.Points.Any(point => !metadata.Contains(point)))
{
- if (!metadata.Contains(point))
- {
- throw new ArgumentException("Scatter points must remain within the declared metadata bounds.", nameof(series));
- }
+ throw new ArgumentException("Scatter points must remain within the declared metadata bounds.", nameof(series));
}
}
diff --git a/src/Videra.SurfaceCharts.Rendering/SurfaceChartGpuRenderBackend.cs b/src/Videra.SurfaceCharts.Rendering/SurfaceChartGpuRenderBackend.cs
index 0777ad81..5e5a60ac 100644
--- a/src/Videra.SurfaceCharts.Rendering/SurfaceChartGpuRenderBackend.cs
+++ b/src/Videra.SurfaceCharts.Rendering/SurfaceChartGpuRenderBackend.cs
@@ -289,12 +289,9 @@ private void DisposeTileResources()
private void EnsureResidentTileResources(SurfaceChartRenderState state)
{
- foreach (var residentTile in state.ResidentTiles)
+ foreach (var residentTile in state.ResidentTiles.Where(residentTile => !_tileResources.ContainsKey(residentTile.Key)))
{
- if (!_tileResources.ContainsKey(residentTile.Key))
- {
- AddOrReplaceTileResources(residentTile, state);
- }
+ AddOrReplaceTileResources(residentTile, state);
}
}
diff --git a/src/Videra.SurfaceCharts.Rendering/SurfaceChartRenderState.cs b/src/Videra.SurfaceCharts.Rendering/SurfaceChartRenderState.cs
index f305485e..dd17c0a0 100644
--- a/src/Videra.SurfaceCharts.Rendering/SurfaceChartRenderState.cs
+++ b/src/Videra.SurfaceCharts.Rendering/SurfaceChartRenderState.cs
@@ -186,14 +186,11 @@ private SurfaceChartRenderChangeSet ApplyIncrementalChanges(SurfaceChartRenderIn
var addedKeys = new List();
var colorMapChanged = !ReferenceEquals(_colorMap, inputs.ColorMap);
- foreach (var existingKey in _residentTiles.Keys.ToArray())
+ foreach (var existingKey in _residentTiles.Keys.Where(existingKey => !incomingTiles.ContainsKey(existingKey)).ToArray())
{
- if (!incomingTiles.ContainsKey(existingKey))
- {
- _residentTiles.Remove(existingKey);
- _cachedResidentTiles = null;
- removedKeys.Add(existingKey);
- }
+ _residentTiles.Remove(existingKey);
+ _cachedResidentTiles = null;
+ removedKeys.Add(existingKey);
}
foreach (var tile in inputs.LoadedTiles)