static void Main(string[] args) { List <ISikidom> sikidomok = new List <ISikidom>(); Kor kor1 = new Kor(19); Kor kor2 = new Kor(26.78); Teglalap tegla1 = new Teglalap(16.8, 23); Teglalap tegla2 = new Teglalap(34.29, 45); Console.WriteLine($"Kör:{kor1.Kerulet()};{kor1.Terulet()}"); Console.WriteLine($"Téglalap:{tegla2.Kerulet()};{tegla2.Terulet()}"); sikidomok.Add(kor1); sikidomok.Add(kor2); sikidomok.Add(tegla1); sikidomok.Add(tegla2); //a listán szereplő síkidomok kerületének összege Console.WriteLine(sikidomok.Sum(x => x.Kerulet())); //a listán szereplő síkidomok területének átlaga Console.WriteLine(sikidomok.Average(x => x.Terulet())); //hogyan lehet különbséget tenni a lista elemei között? Console.WriteLine(sikidomok.Where(x => x.GetType() == typeof(Kor)).Sum(x => x.Kerulet())); Console.ReadKey(); }
static void Main(string[] args) { //Tudunk-e különböző osztályú objektumot //azonos listában tárolni? List <ISikidom> sikidomok = new List <ISikidom>(); Kor kor1 = new Kor(12); Kor kor2 = new Kor(36); Kor kor3 = new Kor(8.37); sikidomok.Add(kor1); sikidomok.Add(kor2); sikidomok.Add(kor3); Teglalap t1 = new Teglalap(12, 36); Teglalap t2 = new Teglalap(33.19, 36.69); Teglalap t3 = new Teglalap(21, 41); sikidomok.Add(t1); sikidomok.Add(t2); sikidomok.Add(t3); Console.WriteLine($"Összes kerület:{sikidomok.Sum(x=>x.Kerulet())}"); Console.WriteLine($"Összes terület:{sikidomok.Sum(x => x.Terulet())}"); foreach (var i in sikidomok) { if (i.GetType() == typeof(Kor)) { Console.WriteLine("Ez kör"); } if (i.GetType() == typeof(Teglalap)) { Console.WriteLine("Ez téglalap"); } } //Írassuk ki csak a körök területét var korkerulet = sikidomok.Where(x => x.GetType() == typeof(Kor)).Sum(x => x.Kerulet()); Console.WriteLine($"Körök kerülete:{korkerulet}"); Console.ReadKey(); }