private void GatherData(SparseTwinIndex <float> storage, IReadODData <float> dataSource, string taskName) { foreach (var point in dataSource.Read()) { if (storage.ContainsIndex(point.O, point.D)) { storage[point.O, point.D] = point.Data; } else { throw new XTMFRuntimeException(this, "In '" + Name + "' while gathering the " + taskName + " we encountered an invalid data point at " + point.O + ":" + point.D + " trying to assign a value of " + point.Data); } } }