Массив с записью в файл - C#
Формулировка задачи:
Добрый день.
Помогите, пожалуйста, решить:
Требуется создать класс Cinema, в нем определить поля: количество мест, количество рядов, порядковый номер кинотеатра. В программе нужно создать массив кинотеатров со случайными параметрами (при этом рядов в каждом кинотеатре должно быть меньше, чем мест), отсортировать его с помощью методов класса Array по убыванию количества мест. Затем записать массив в текстовый файл в кодировке Unicode, расположенный в папке “data” текущей рабочей директории.
Решение задачи: «Массив с записью в файл»
textual
Листинг программы
using System;
using System.IO;
namespace CinemaNetwork
{
class Program
{
static void Main(string[] args)
{
int numberOfCinemas = 10;
Cinema c = new Cinema();
Cinema[] cinemasList = Cinema.GetCinemas(numberOfCinemas);
Comparison<Cinema> comprassion = (a, b) => { return a.NumberIfSeats == b.NumberIfSeats ? 0 : a.NumberIfSeats > b.NumberIfSeats ? -1 : 1; };
Array.Sort(cinemasList, comprassion);
Cinema.WriteToFile(cinemasList);
foreach(Cinema cinema in cinemasList)
Console.WriteLine(cinema.ToString());
Console.ReadLine();
}
}
class Cinema
{
public int ID { get; set; }
public int NumberIfSeats { get; set; }
public int NumberOfRows { get; set; }
public static Cinema[] GetCinemas(int numberOfCinemas)
{
Random random = new Random();
Cinema[] cinemasList = new Cinema[numberOfCinemas];
for (int i = 0; i < numberOfCinemas; i++)
{
cinemasList[i] = new Cinema();
cinemasList[i].ID = i + 1;
cinemasList[i].NumberOfRows = random.Next(6, 12);
cinemasList[i].NumberIfSeats = cinemasList[i].NumberOfRows * random.Next(6, 10);
}
return cinemasList;
}
public static void WriteToFile(Cinema[] cinemasList)
{
using (StreamWriter sw = new StreamWriter(new FileStream("data.txt", FileMode.OpenOrCreate, FileAccess.Write)))
{
foreach (Cinema cinema in cinemasList)
sw.WriteLine(cinema.ToString());
}
}
public override string ToString()
{
return string.Format("Cinema #{0}, NumberIfSeats: {1}, NumberOfRows: {2}",
this.ID, this.NumberIfSeats, this.NumberOfRows);
}
}
}