/// <summary> /// Список чисел в строку, с групперовкой последовательных номеров /// ints = 1, 2, 3, 4, 5, 7, 8, 10, 15, 16, 100, 101, 102, 103, 105, 106, 107, 109 /// res = "1-8, 10, 15, 16, 100-107, 109" /// </summary> public static string IntsToStringSequence(int[] ints) { var uniqints = ints.Distinct(); string res = string.Empty; IntSequence seq = new IntSequence(uniqints.First()); foreach (var n in uniqints.Skip(1)) { if (!seq.AddInt(n)) { SetSeq(ref res, ref seq); seq = new IntSequence(n); } } if (!seq.IsNull()) { SetSeq(ref res, ref seq); } return res; }
/// <summary> /// Список чисел в строку, с групперовкой последовательных номеров /// int's = 1, 2, 3, 4, 5, 7, 8, 10, 15, 16, 100, 101, 102, 103, 105, 106, 107, 109 /// res = "1-8, 10, 15, 16, 100-107, 109" /// </summary> public static string IntsToStringSequence(int[] ints) { var uniqints = ints.Distinct().ToList(); var res = string.Empty; var seq = new IntSequence(uniqints.First()); foreach (var n in uniqints.Skip(1)) { if (!seq.AddInt(n)) { SetSeq(ref res, ref seq); seq = new IntSequence(n); } } if (!seq.IsNull()) { SetSeq(ref res, ref seq); } return(res); }