public override string ToString() { StringBuilder sb = new StringBuilder(); sb.AppendLine(base.ToString()); sb.AppendLine($" Components ({Components.Count}):"); foreach (var component in Components) { sb.AppendLine($" {component}"); } double avgPerformance = Peripherals.Sum(p => p.OverallPerformance) / Peripherals.Count; string avgPerfString = Peripherals.Count == 0 ? $"{Peripherals.Count:F2}" : $"{avgPerformance:F2}"; sb.AppendLine($" Peripherals ({Peripherals.Count}); Average Overall Performance ({avgPerfString}):"); foreach (var peripherial in Peripherals) { sb.AppendLine($" {peripherial}"); } return(sb.ToString().Trim()); }