Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 51

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 45 46 47 48 49 50 < 51 > 52 53 54 55 56 57 .. 404 >> Следующая


jagaedlntArray ж new intI3] [4];

Но даже в том случае, если бы мы могли применять запись такого вида, вряд ли от этого была бы какая-нибудь польза, поскольку в случае многомерных массивов точно такого же эффекта можно достичь с меньшими затратами. Следующий код также является недопустимым:

jaggedintArray = {{1, 2, 3}, tl). Г1. 2))j

На самом деле существуют две возможности. Можно сначала инициализировать массив, содержащий другие массивы (чтобы избежать путаницы, мы будем называть вложенные массивы субмассивами), а затем, в свою очередь, инициализировать этн субмассивы:

jaggedlntArray = new int [2] Ц f

jaggedlntArray [0] <• new int[3);

jaggedlntArray [11 = new Int[4]i

Можно также воспользоваться видоизмененной формой приведенного выше литерального присваивания:

jaggedlntArray “ {new int[] {1, 2, 3), new int[] (1), new inti) (1, 2)};

Для таких неоднородных массивов можно использовать циклы foreach, однако чаще

всего вложенные циклы применяются для того, чтобы получить доступ к реальным

данным. Например, допустим, что имеется следующий неоднородный массив, который включает в себя десять других массивов, каждый из которых содержит целые значения, являющиеся делителями целых чисел нз диапазона от 1 до 10:

- int[][] divisorsiToio - {new int[] (1),
new inti] (1, 2),
new int[] (1, 3b
new int[] (1. 2, 4),
new int [] (1, S),
new int[] (1, 2, 3, 6],
new int[] (1, 7),
new int{J {1, 2, 4, 8),
new int[] (1, 3, 9),-
new int[] {1, 2, 5, 10}}(

Использование следующего кода:

foreach (int divisor in divisorslTolO)

(

Console.WriteLine(divisor) i

}

является недопустимым, поскольку divisorsiToio содержит в себе не элементы inc, а элементы int П. Поэтому нам придется проходить не только по самому массиву, но и непосредственно по каждому субмассиву:

foreach (int[J diviaorsOflnt in diviacrsl'l'oit)) t

foreach (int divisor in diviooraOfInt) t

Console.WriteLine(divisor);

)

)
Дополнительные сведения о переменных______________^__________________________________________99

Как вы, вероятно, заметили, прн использовании неоднородных массивов синтаксис очень быстро становится сложным! В большинстве случаев оказывается проще использовать либо прямоугольные массивы, либо какой-нибудь другой, более простой способ хранения данных. Однако могут возникать ситуации, в которых придется использовать именно этот метод, а дополнительные знания не повредят!

Действия над строками

До сих пор все наши операции над строками сводились к выводу строк на консоль, чтению строк с консоли н объединению строк посредством оператора +. В процессе программирования более сложных приложений вы очень скоро убедитесь, что значительная их часть предполагает различные манипуляции со строками. По этой причине нам представляется разумным потратить несколько страниц книги на наиболее распространенные способы работы со строками в С#.

Начнем с того, что переменная тнпа string — это всего лишь массив переменных типа char, доступных в режиме “только чтение”. Иными словами, мы можем получить доступ к отдельным символам строки следующим образом:

string myString ¦ 'A string*;

. ' char myChar * nyStringdl;

Однако присваивать отдельные символы таким cnoco<SoM нельзя.

Для получения массива, доступного для записи, следует воспользоваться приведенным ниже кодом. В нем используется команда TcCharArray О переменной тнпа массива:

string myString « *А string';

charI] myChars ¦ myString.ToCharArrayОi

Теперь мы можем выполнять манипуляции с массивом типа char обычным путем.

Строки могут использоваться и в циклах foreach:

foreach (char character in String)

<

Console.WriteLine('{0)', character) i

Как и в случае других массивов имеется возможность узнать число элементов с помощью myString.Length. Таким же образом можно определить общее количество символов в строке:

string щуString * Console.ReadLineO ;

Console. WriteLine ('You typed (0) characters.', myString. Length) ,-

Другим основополагающим способом работы со строками является использование команд в формате, аналогичном формату команды <string>.TocharArrayО. Существуют две простые, но очень полезные команды: <strins>.ToLowerO и <string>,Toupper(), Они позволяют переводить всю строку целиком в нижний и верхний регистр соответственно. Чтобы оценить пользу от них, представьте ситуацию, когда вы хотите убедиться в поступлении от пользователя какого-то ответа, например, строки “yes". Если мы переведем всю введенную строку в иижний регистр, то сможем воспринять и такие строки, как “YES", "Yes”, “yeS" н т. д.:

string userResponee * Console.ReadLineO; -

if (ueerReeponee.ToLowert) " 'yee')

{

- // выполнение действий я случае получения ответа

)
100 Глава 5

Обратите внимание, что эта команда, как и другие рассматриваемые в данном разделе команды, на самом деле не изменяет ту строку, к которой применяется. Напротив, использование этой команды для некоторой строки приводит к созданию новой строки, которую можно сравнить с какой-либо другой строкой (как показано выше) или присвоить другой переменной. В роли этой переменной может выступать переменная, над которой выполняется данная операция:
Предыдущая << 1 .. 45 46 47 48 49 50 < 51 > 52 53 54 55 56 57 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.