Возможно, концепция перечислимых типов Вам уже знакома. Поэтому, ограничимся классическим, в этом случае, примером. Допустим, программа должна определять количество отработанных часов по правилу: понедельник, вторник, среда, четверг – 8 часов, пятница – 7, суббота и воскресенье – 0.
Для представления дня недели опишем перечислимый тип
Теперь функция, определяющая количество отработанных часов может выглядеть следующим образом:
static int WorkOurs (WeekDay wd)
{
switch(wd)
{
case WeekDay.San: case WeekDay.Sat: return 0;
case WeekDay.Mon: case WeekDay.Tue:
case WeekDay.Wed: case WeekDay.Thu: return 8;
case WeekDay.Fri: return 7;
}
}
В последнем примере использования метода Split второй параметр является параметром стандартного перечислимого типа StringSplitOptions, определенного в .NET, а RemoveEmptyEntries – одним из значений этого типа.
Метод IndexOf()
Этот метод возвращает позицию первого вхождения строки, в строке, вызывающей этот метод. Если подстроки в строке нет, метод возвращает -1.
String s=”Hello, Helen!”;
Console.WriteLine(s.IndexOf(“He”); //выводит 0
Console.WriteLine(s.IndexOf(“he”); //выводит -1
Чтобы найти последующие (после первого) вхождения, можно применить перегруженную версию IndexOf, второй параметр которого указывает позицию, с которой нужно начинать поиск строки в подстроке. С помощью этого метода следующий фрагмент выводит все вхождения подстроки.
int k=0;
while (k!=-1)
{
k= s.IndexOf(“He”,k);
Console.WriteLine(k); //выводит 0
k++;
}
Синтаксис и действие этого метода похожи на метод Console.WriteLine. Отличие в том, что WriteLine выводит сформированную строку на экран, а Format возвращает эту строку для дальнейшего использования в программе.
Метод Format является статическим и вызывается от имени класса:
String s=String.Format(“{0}x{1}={2} и {2}={1}x{0}”,2,3,2*3);
В результате сформирована строка “2x3=6 и 6=3*2”
Набор методов класса String не может быть идеальным средством для решения всех задач обработки текстов. Существует немало даже простых задач, которые «неудобно» решать этими методами. В этом случае остается последнее средство – решать задачу, рассматривая строку как массив символов. Однако, как уже было сказано ранее, индексированный доступ к символам строки возможен только для чтения. Именно в этом случае Вам понадобится метод ToCharArray, который «разбирает» целостный объект-строку на массив символов. В следующем примере решается простая задача инвертирования символов строки:
Пример демонстрирует, что метод ToCharArray возвращает массив символов. Последняя строка показывает, как можно создать объект-строку из массива символов.