/// <summary> /// Returns all values calculated for the quantity with path <paramref name="quantityPath" /> and ordered by individual /// id. /// </summary> public virtual IReadOnlyList <QuantityValues> AllQuantityValuesFor(string quantityPath) { lock (_locker) { return(AllIndividualResults.Select(x => x.QuantityValuesFor(quantityPath)).ToArray()); } }
protected internal virtual void ReorderByIndividualId() { lock (_locker) { AllIndividualResults = new HashSet <IndividualResults>(AllIndividualResults.OrderBy(x => x.IndividualId)); } }
/// <summary> /// Returns the results calculated for the individual with id <paramref name="individualId" /> or null it they do not /// exist /// </summary> public virtual IndividualResults ResultsFor(int individualId) { lock (_locker) { return(AllIndividualResults.FirstOrDefault(x => x.IndividualId == individualId)); } }
public virtual IReadOnlyList <int> AllIndividualIds() { lock (_locker) { return(AllIndividualResults.Select(x => x.IndividualId).ToArray()); } }
public virtual IReadOnlyList <string> AllQuantityPaths() { lock (_locker) { return(AllIndividualResults.Any() ? AllIndividualResults.First().Select(x => x.QuantityPath).ToArray() : Array.Empty <string>()); } }
public virtual void Add(IndividualResults individualResults) { individualResults.SimulationResults = this; lock (_locker) { AllIndividualResults.Add(individualResults); } }
public virtual IReadOnlyList <string> AllQuantityPaths() { var list = new List <string>(); lock (_locker) { if (AllIndividualResults.Count != 0) { list.AddRange(AllIndividualResults.First().Select(x => x.QuantityPath)); } } return(list); }
public virtual IndividualResults[] IndividualResultsAsArray() => AllIndividualResults?.ToArray();
public virtual void Clear() { Time = null; AllIndividualResults.Clear(); }
public virtual IEnumerator <IndividualResults> GetEnumerator() { return(AllIndividualResults.GetEnumerator()); }