Результат работы программы:
3. Использование класса StringBuilder:
using System;
using System.Collections.Generic;
using System.Text;
namespace HelloWorldDemo
{
class Program
{
static void Main(string[] args)
{
StringBuilder WordList = new StringBuilder("Каждый Охотник ");
WordList.Append("Желает Знать Где ");
Console.WriteLine(WordList);
WordList.Append("Сидит Фазан");
Console.WriteLine(WordList);
// Сделать все буквы прописными
string Spectrum = WordList.ToString().ToUpper();
Console.WriteLine(Spectrum);
}
}
}
Результат работы программы:
4. Использование класса ArrayList.
Использование класса ArrayList из пространства имен System.Collections позволяет эффективно реализовать работу с массивами объектов, поскольку многие возможности, необходимые для этого реализованы изначально, в частности методы вставки, удаления и нумерации элементов.
Для использования возможностей ArrayList используется не обычное наследование, а модель включения в виде делегирования вызовов на выполнение различных действий классу производному от ArrayList:
public class NBooks: IEnumerable
{
// nbList — внутренний класс, который будет делать всю работу
|
|
private ArrayList nbList;
// Создаем объект класса nbList при помощи конструктора NBooks
public NBooks() {nbList = new ArrayList();}
// Реализуем нужные нам методы для приема вызовов извне и передачи их nbList
// Метод для вставки объекта NBook
public void AddNBook(NBook nb)
{ nbList.Add(nb); }
// Метод для удаления объекта NBook
public void RemoveNBook(int nbToRemove)
{ nbList.RemoveAt(nbToRemove); }
// Свойство, возвращающее количество объектов NBook
public int NBookCount
{ get { return nbList.Count; } }
// Метод для очистки объекта — удаления всех объектов NBook
public void ClearAllNBooks()
{ nbList.Clear(); }
// Метод, который отвечает на вопрос — есть ли уже в наборе такой объект NBook
public bool NBookIsPresent(NBook c)
{ return nbList.Contains(c); }
// Все, что связано с реализацией IEnumerator, перенаправляется в nbList
public IEnumerator GetEnumerator()
{ return nbList.GetEnumerator(); }
}
Реализация класса NBook и код программы, использующей класс NBooks представлены ниже.
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
namespace NBooks
{
public class NBook
{
// Конструктор класса NBook
public string Model;
public string CPU_model;
public int CPU_clock;
public int RAM_size;
public NBook(string mname, string CPU, int Clock, int RAM)
{
Model = mname;
CPU_model = CPU;
CPU_clock = Clock;
RAM_size = RAM;
}
}
class Program
{
static void Main(string[] args)
{
NBooks nbLot = new NBooks();
// Создание списка объектов NBook
nbLot.AddNBook(new NBook("ASUS A7Sn","Intel Core 2 Duo T8300", 2400, 2048));
nbLot.AddNBook(new NBook("Acer Aspire 5530G-803G25Mi","AMD Turion X2 Ultra ZM80", 2100, 3072));
nbLot.AddNBook(new NBook("Fujitsu Amilo Si 2636", "Intel Core 2 Duo T8300", 2400, 2048));
nbLot.AddNBook(new NBook("HP Pavilion tx2650er", "AMD Turion X2 Ultra ZM82", 2200, 4096));
// Выводим информацию о каждом объекте при помощи конструкции foreach
Console.WriteLine("You have {0} in the lot: \n", nbLot.NBookCount);
foreach (NBook nb in nbLot)
{
Console.WriteLine("Model: {0}", nb.Model);
Console.Write("CPU: {0}", nb.CPU_model);
Console.WriteLine(" {0} GHz", nb.CPU_clock);
|
|
Console.WriteLine("RAM: {0} GB\n", nb.RAM_size);
}
// Удаляем один из ноутбуков
nbLot.RemoveNBook(3);
Console.WriteLine("You have {0} in the lot.\n", nbLot.NBookCount);
// Добавляем еще один ноутбук и проверяем его наличие в наборе
NBook temp = new NBook("ASUS M51Ta", "AMD Turion™ X2 Ultra ZM84", 2300, 4096);
nbLot.AddNBook(temp);
if(nbLot.NBookIsPresent(temp))
Console.WriteLine(temp.Model + " is already in the lot.");
// Удалить все
nbLot.ClearAllNBooks();
Console.WriteLine("You have {0} in the lot.\n", nbLot.NBookCount);
}
}
}