Из всего разнообразия классов коллекций рассмотрим самую простую коллекцию классов – стек.
Задача 12.1 Пусть элементом стека является объект класса КНИГА. Предполагается, что книги складываются «стопкой» и брать и добавлять книги можно только сверху.
Для простоты будем считать, что все данные класса открыты и ограничены только автором книги, ее названием и ценой. Из методов класса используем только конструктор с заданием параметров.
Для организации коллекции в виде списочной структуры используем стандартную структуру Stack.
Исходный код программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
}
public class Kniga
{
public string Naz;
public string Avtor;
public int Ctoimoct;
public Kniga(string sa, string sb, int sc)
{
Avtor = sa; Naz = sb; Ctoimoct = sc;
}
};
public Stack<Kniga> vstek = new Stack<Kniga>();
public string ss = "";
private void button1_Click(object sender, EventArgs e)
{
string a, b;
a = textBox1.Text;
b = textBox2.Text;
c = Convert.ToInt32(textBox3.Text);
Kniga Tom = new Kniga(a, b, c);
vstek.Push(Tom);
}
private void button2_Click(object sender, EventArgs e)
{
Kniga Tom = new Kniga("", "", 0);
foreach (Kniga T in vstek)
{
ss = T.Avtor + " " + T.Naz + " " +
Convert.ToString(T.Ctoimoct) + " \n";
textBox4.AppendText(ss);
}
}
}
}
Работа программы изображена на рисунке 12.1
Рисунок 12.1 – Работа программы
Необходимо отметить, что в языке C# имеется несколько классов, реализующих коллекцию объектов, например, массива, стеки и очереди и т.д. Считается, что только массивы являются конструкцией языка C#, а остальные коллекции – это просто классы платформы.NET (точнее ее библиотеки Framework). Поэтому, имеет смысл, ознакомится с составом коллекций этой библиотеки.