static void Main() { #region Создание списков var graham = new Racer(7, "Graham", "Hill", "UK", 14); var emerson = new Racer(13, "Emerson", "Fittipaldi", "Brazil", 14); var mario = new Racer(16, "Mario", "Andretti", "USA", 12); var racers = new List <Racer>(20) { graham, emerson, mario, new Racer(24, "Michael", "Schumacher", "Germany", 91), new Racer(27, "Mika", "Hakkinen", "Finland", 20) }; racers.AddRange( new[] { new Racer(14, "Niki", "Lauda", "Austria", 25), new Racer(21, "Alain", "Prost", "France", 51) }); var racers2 = new List <Racer>( new[] { new Racer(12, "Jochen", "Rindt", "Austria", 6), new Racer(22, "Ayrton", "Senna", "Brazil", 41) }); #endregion #region Обход списков racers2.ForEach(Console.WriteLine); racers.ForEach(racer => Console.WriteLine("{0:A}", racer)); #endregion #region Поиск int finIndex = racers.FindIndex(new FindCountry("Finland").FindCountryPredicate); Console.WriteLine(racers[finIndex]); int findIndex = racers.FindIndex(racer => racer.Country == "Finland"); Console.WriteLine(racers[findIndex]); Racer nikiRacer = racers.Find(racer => racer.FirstName == "Niki"); Console.WriteLine(nikiRacer); List <Racer> bigWinners = racers.FindAll(racer => racer.Wins > 20); bigWinners.ForEach(racer => Console.WriteLine("{0:A}", racer)); #endregion #region Сортировка racers.Sort(); racers.ForEach(Console.WriteLine); racers.Sort(new RacerComparer(RacerComparer.CompareType.Country)); racers.ForEach(Console.WriteLine); racers.Sort((first, second) => first.Wins.CompareTo(second.Wins)); racers.ForEach(Console.WriteLine); #endregion #region Преобразование типов List <Person> persons = racers.ConvertAll(racer => new Person(string.Format("{0} {1}", racer.FirstName, racer.LastName))); persons.ForEach(Console.WriteLine); #endregion #region Коллекции, доступные только для чтения IList <Racer> readonlyRacers = racers.AsReadOnly(); try { readonlyRacers.RemoveAt(0); } catch (NotSupportedException notSupportedEx) { Console.WriteLine(notSupportedEx); } #endregion Console.ReadKey(); }
static void Main() { var graham = new Racer(7, "Graham", "Hill", "UK", 14); var emerson = new Racer(13, "Emerson", "Fittipaldi", "Brazil", 14); var mario = new Racer(16, "Mario", "Andretti", "USA", 12); var racers = new List <Racer>(20) { graham, emerson, mario }; racers.Add(new Racer(24, "Michael", "Schumacher", "Germany", 91)); racers.Add(new Racer(27, "Mika", "Hakkinen", "Finland", 20)); racers.AddRange(new Racer[] { new Racer(14, "Niki", "Lauda", "Austria", 25), new Racer(21, "Alain", "Prost", "France", 51) }); // insert elements racers.Insert(3, new Racer(6, "Phil", "Hill", "USA", 3)); // accessing elements for (int i = 0; i < racers.Count; i++) { Console.WriteLine(racers[i]); } foreach (var r in racers) { Console.WriteLine(r); } // searching int index1 = racers.IndexOf(mario); int index2 = racers.FindIndex(new FindCountry("Finland").FindCountryPredicate); int index3 = racers.FindIndex(r => r.Country == "Finland"); Racer racer = racers.Find(r => r.FirstName == "Niki"); List <Racer> bigWinners = racers.FindAll(r => r.Wins > 20); foreach (Racer r in bigWinners) { Console.WriteLine($"{r:A}"); } Console.WriteLine(); // remove elements if (!racers.Remove(graham)) { Console.WriteLine("object not found in collection"); } var racers2 = new List <Racer>(new Racer[] { new Racer(12, "Jochen", "Rindt", "Austria", 6), new Racer(22, "Ayrton", "Senna", "Brazil", 41) }); }