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)