示例#1
0
        static void Main(string[] args)
        {
            SoftwareCollection softwares = new SoftwareCollection
            {
                new FreeSoftware("FileZilla", "США"),
                new ProprietarySoftware("Adobe Photoshop", "США",
                                        DateTime.Parse("12.12.2018"), TimeSpan.FromDays(360), 3600),
                new SharewareSoftware("WinRar", "Россия",
                                      DateTime.Parse("12.12.2018"), TimeSpan.FromDays(90)),
                new ProprietarySoftware("ABBYY FineReader", "Россия",
                                        DateTime.Parse("06.06.2017"), TimeSpan.FromDays(360), 2800),
                new FreeSoftware("FireFox Mozilla", "США")
            };

            //
            Console.WriteLine("=====До сортировки======");
            PrintCollection(softwares);
            Console.WriteLine("========================");

            Console.WriteLine("Для продолжения нажмите Ввод...");
            Console.ReadLine();

            softwares.Sort();

            Console.WriteLine("=====После сортировки======");
            PrintCollection(softwares);
            Console.WriteLine("========================");

            Console.WriteLine("Для продолжения нажмите Ввод...");
            Console.ReadLine();


            var freeSoftwares = softwares.GetSoftwaresByType <FreeSoftware>(typeof(FreeSoftware));

            Console.WriteLine("=====Только Free=====");
            foreach (var item in freeSoftwares)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("========================");

            Console.WriteLine("Для продолжения нажмите Ввод...");
            Console.ReadLine();

            //новое!
            var propSoftwares = softwares.GetSoftwaresByType <ProprietarySoftware>();

            foreach (var item in propSoftwares)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("========================");


            Console.ReadKey();
        }
示例#2
0
 private static void PrintCollection(SoftwareCollection softwares)
 {
     foreach (var software in softwares)
     {
         if (software is FreeSoftware)
         {
             Console.WriteLine((software as FreeSoftware));
         }
         else if (software is SharewareSoftware)
         {
             Console.WriteLine((software as SharewareSoftware));
         }
         else if (software is ProprietarySoftware)
         {
             Console.WriteLine((software as ProprietarySoftware));
         }
         else
         {
             Console.WriteLine(software);
         }
         Console.WriteLine();
     }
 }