Метод .split() - C#

Узнай цену своей работы

Формулировка задачи:

Итак, помогите пожалуйста написать метод сплит, или скопипастьте мне его код, пожалуйста. Просто мне сказали не пользоваться сплитом, а писать самому. Я сделал разделитель, но не могу из него метод создать. Помогите написать метод, который через разделитель указанный сделает массив строк

Решение задачи: «Метод .split()»

textual
Листинг программы
  1.  class Program
  2.     {
  3.         private static void Main(string[] args)
  4.         {
  5.  
  6.             string str = ",123,546,879,454,";
  7.             foreach (var word in str.MySplit(new []{',','.',' '}))
  8.             {
  9.                 Console.WriteLine( "_{0}_",word);
  10.             }
  11.             Console.ReadLine();
  12.         }
  13.     }
  14.  
  15.     public static class MyClass
  16.     {
  17.         public static string[] MySplit(this string str, char[] separators,bool withEmpty = false)
  18.         {
  19.             if (separators == null) throw new ArgumentNullException("separators");
  20.             if (str == null) throw new ArgumentNullException("str");
  21.             if (separators.Length == 0) throw new ArgumentException("Массив пустой");
  22.             if (string.IsNullOrWhiteSpace(str)) throw new ArgumentException("Строка пустая");
  23.  
  24.             var list = new List<string>();
  25.             int start=-1, end=0;
  26.             string substr = string.Empty;
  27.             for (int i = 0; i < str.Length; i++)
  28.             {
  29.                 if (!separators.Contains(str[i]))
  30.                     continue;
  31.                 // если текущий символ есть в массиве разделителей
  32.                 end = i;
  33.                 substr = str.Substring(start + 1, end - start - 1);
  34.                 if (!withEmpty)
  35.                 {
  36.                     // если опция без пустых строк то не копируем если строка пустая
  37.                     if (!string.IsNullOrWhiteSpace(substr))
  38.                         list.Add(substr);
  39.                 }
  40.                 else
  41.                 {
  42.                     list.Add(substr);
  43.                 }
  44.  
  45.                 start = end;
  46.             }
  47.             substr = str.Substring(end + 1, str.Length - end - 1);
  48.             if (!withEmpty)
  49.             {
  50.                 // если опция без пустых строк то не копируем если строка пустая
  51.                 if (!string.IsNullOrWhiteSpace(substr))
  52.                     list.Add(substr);
  53.             }
  54.             else
  55.             {
  56.                 list.Add(substr);
  57.             }
  58.  
  59.             return list.ToArray();
  60.         }
  61.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут