public override string ToString() { var sampleList = new List <(ObjectSamplesetType, ObjectSamplesetType)>(); string edgeSampleStr; string edgeHitsoundStr; if (EdgeSamples != null) { for (var i = 0; i < EdgeSamples.Length; i++) { var objectSamplesetType = EdgeSamples[i]; var objectAdditionType = EdgeAdditions[i]; sampleList.Add((objectSamplesetType, objectAdditionType)); } edgeSampleStr = "," + string.Join("|", sampleList.Select(k => $"{(int)k.Item1}:{(int)k.Item2}")); } else { edgeSampleStr = ""; } if (EdgeHitsounds != null) { edgeHitsoundStr = "," + string.Join("|", EdgeHitsounds.Select(k => $"{(int)k}")); } else { edgeHitsoundStr = ""; } return(string.Format("{0}|{1},{2},{3}{4}{5}", SliderType.ParseToCode(), string.Join("|", CurvePoints.Select(k => $"{k.X}:{k.Y}")), Repeat, PixelLength, edgeHitsoundStr, edgeSampleStr)); }