private void button1_Click(object sender, EventArgs e) { var Arr = textBox1.Text.Split(); BubbleSort(Arr); textBox2.Text = string.Join(" ", Arr); } Имеется данный код, по условию не должны использоваться методы, чем их можно заменить?
FXT, мне бы для начала понять, как работает .split() в C#. Каким образом он разделяет строку? Что он считает разделителем?
Патологоанатом, Метод String.Join сцепляет элементы указанного массива или элементы коллекции, помещая между ними заданный разделитель.
mikuzeboka, Та проблема в том, что преподаватель дал задание и условие, что не должны использоваться методы, которые нельзя отобразить на "блок=схеме". И вот надо как-то заменить Split и Join, а мои навыки не позволяют продумать это.
Split for (int i = 0; i < str.Length; i++) { if (str[i] != ' ' && str[i] != '.' && str[i] != ',') { s += str[i]; } else { Console.WriteLine(s); s = ""; } } C# for (int i = 0; i < str.Length; i++) { if (str[i] != ' ' && str[i] != '.' && str[i] != ',') { s += str[i]; } else { Console.WriteLine(s); s = ""; } } static IEnumerable<string> Split(this string str, Func<char,bool> pred) { StringBuilder sb = new StringBuilder(); for(int i = 0; i < str.Length; i++) { if (pred(str[i])) sb.Append(str[i]); else if (sb.Length > 0) { yield return sb.ToString(); sb.Clear(); } } if (sb.Length > 0) yield return sb.ToString(); } C# static IEnumerable<string> Split(this string str, Func<char,bool> pred) { StringBuilder sb = new StringBuilder(); for(int i = 0; i < str.Length; i++) { if (pred(str[i])) sb.Append(str[i]); else if (sb.Length > 0) { yield return sb.ToString(); sb.Clear(); } } if (sb.Length > 0) yield return sb.ToString(); } Но зачем их заменять? Для чего вообще эти костыли? Join string[] many = { "ab", "bc", "cd", "de" }; StringBuilder sb = new StringBuilder(); many.ForEach(x => sb.Append(x)); Console.WriteLine(string.Format("Result: " + sb)); // Result: abbccdde // или так: string resultPlus = string.Empty; many.ForEach(x => resultPlus = string.Format("{0}{1}", resultPlus, x) ); C# string[] many = { "ab", "bc", "cd", "de" }; StringBuilder sb = new StringBuilder(); many.ForEach(x => sb.Append(x)); Console.WriteLine(string.Format("Result: " + sb)); // Result: abbccdde // или так: string resultPlus = string.Empty; many.ForEach(x => resultPlus = string.Format("{0}{1}", resultPlus, x) ); --- Сообщение объединено с предыдущим 10 дек 2022 Если не полениться и загуглить, прежде чем писать сюда, то можно быстрее найти для себя ответ на вопрос. Вот тоже есть решение на CyberForum