Создать класс трек (наименование, исполнитель, альбом, длительность, рейтинг, размер файла, путь к файлу) - C#
Формулировка задачи:
Всем доброго времени суток, совсем не шарю в классах на C#, НУЖНА ПОМОЩЬ. Создать класс трек (наименование, исполнитель, альбом, длительность, рейтинг, размер файла, путь к файлу). Создать класс контейнер треков, в котором будет определен массив треков. Определить методы сортировки трека по наименованию и размеру, методы поиска по исполнителю и альбому (совпадение не обязательно по всему слову, может быть и по первым буквам). Написать программу демонстрации работы созданных классов.Заранее спасибо
Решение задачи: «Создать класс трек (наименование, исполнитель, альбом, длительность, рейтинг, размер файла, путь к файлу)»
textual
Листинг программы
class Program
{
static void Main()
{
TrackList list = new TrackList();
list.Add("Master Of Puppets", "Metallica", "Master Of Puppets", @"D:\SweetMusic\ThrashMetal", TimeSpan.Parse("00:07:56"), 100, 10);
list.Add("Leather Rebel", "Judas Priest", "Painkiller", @"D:\SweetMusic\HeavyMetal", TimeSpan.Parse("00:03:35"), 90, 5);
list.Add("Raining blood", "Slayer", "Reign in Blood", @"D:\SweetMusic\ThrashMetal", TimeSpan.Parse("00:04:14"), 100, 8);
list.Add("Кабы не было зимы", "Мама дяди Фёдора", "", @"D:\SweetMusic\Музыка из мультиков", TimeSpan.Parse("00:00:43"), 82, 2);
list.Sort(true); // костыль, ибо устал. true = сортируем по имени, false = сортируем по альбому
Console.WriteLine(list.FindBy("Slayer"));
Console.WriteLine(list.FindBy("Борис Моисеев"));
Console.WriteLine(list.FindBy("Reign in Blood"));
}
}
class Track
{
public Track(string name, string singer, string album, string path, TimeSpan duration, int rating, int size)
{
Name = name;
Singer = singer;
Album = album;
Path = path;
Duration = duration;
Rating = rating;
Size = size;
}
public string Name { get; set; }
public string Singer { get; set; }
public string Album { get; set; }
public string Path { get; set; }
public TimeSpan Duration { get; set; }
public int Rating { get; set; }
public int Size { get; set; }
}
class TrackList
{
private List<Track> list;
public TrackList()
{
list = new List<Track>();
}
public void Sort(bool sortType)
{
if (sortType)
{
var sortedByName = list.OrderBy(t => t.Name);
SortBy(sortedByName);
}
else
{
var sortedByAlbum = list.OrderBy(t => t.Album);
SortBy(sortedByAlbum);
}
}
private void SortBy(IOrderedEnumerable<Track> sort)
{
foreach (var item in sort)
{
Console.WriteLine("Name: {0}\nAlbum: {1}\nSinger: {2}\nDuration: {3}\nPath: {4}\nRaiting: {5}\nSize: {6}\n",
item.Name, item.Album, item.Singer,
item.Duration, item.Path, item.Rating, item.Size);
}
}
public string FindBy(string singerOrAlbum)
{
var check = list.Find(x => x.Singer.Contains(singerOrAlbum));
if (check != null)
return "Нашлось!";
else
{
check = list.Find(x => x.Album.Contains(singerOrAlbum));
if(check != null)
return "Нашлось!";;
}
return "Не нашлось :(";
}
public void Add(string name, string singer, string album, string path, TimeSpan duration, int rating, int size)
{
list.Add(new Track(name, singer, album, path, duration, rating, size));
}
}