KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
Перейти на страницу:

{

  public class Person

  {

    public int Age {get; set;}

    public string FirstName {get; set;}

    public string LastName {get; set;}

    public Person(){}

    public Person(string firstName, string lastName, int age)

    {

      Age = age;

      FirstName = firstName;

      LastName = lastName;

    }

    public override string ToString()

    {

      return $"Name: {FirstName} {LastName}, Age: {Age}";

    }

  }

}

Удалите сгенерированный код из файла

Program.cs
и добавьте следующие операторы
using
:

using System;

using System.Collections.Generic;

using FunWithGenericCollections;

Первым будет исследоваться обобщенный класс

List<T>
, который уже применялся ранее в главе. Класс
List<T>
используется чаще других классов из пространства имен
System.Collections.Generic
, т.к. он позволяет динамически изменять размер контейнера. Чтобы ознакомиться с его особенностями, добавьте в класс
Program
метод
UseGenericList()
, в котором задействован класс
List<T>
для манипулирования набором объектов
Person
; вспомните, что в классе
Person
определены три свойства (
Age
,
FirstName
и
LastName
), а также специальная реализация метода
ToString()
:

static void UseGenericList()

{

  // Создать список объектов Person и заполнить его с помощью

  // синтаксиса инициализации объектов и коллекции.

  List<Person> people = new List<Person>()

  {

    new Person {FirstName= "Homer", LastName="Simpson", Age=47},

    new Person {FirstName= "Marge", LastName="Simpson", Age=45},

    new Person {FirstName= "Lisa", LastName="Simpson", Age=9},

    new Person {FirstName= "Bart", LastName="Simpson", Age=8}

  };

  // Вывести количество элементов в списке.

  Console.WriteLine("Items in list: {0}", people.Count);

  // Выполнить перечисление по списку.

  foreach (Person p in people)

  {

    Console.WriteLine(p);

  }

  // Вставить новый объект Person.

  Console.WriteLine("n->Inserting new person.");

  people.Insert(2, new Person { FirstName = "Maggie",

                                LastName = "Simpson", Age = 2 });

  Console.WriteLine("Items in list: {0}", people.Count);

  // Скопировать данные в новый массив.

  Person[] arrayOfPeople = people.ToArray();

  foreach (Person p in arrayOfPeople)  // Вывести имена

  {

    Console.WriteLine("First Names: {0}", p.FirstName);

  }

}

Здесь для наполнения списка

List<T>
объектами применяется синтаксис инициализации в качестве сокращенной записи многократного вызова метода
Add()
. После вывода количества элементов в коллекции (и прохода по всем элементам) вызывается метод
Insert()
. Как видите, метод
Insert()
позволяет вставлять новый элемент в
List<T>
по указанному индексу.

Наконец, обратите внимание на вызов метода

ToArray()
, который возвращает массив объектов
Person
, основанный на содержимом исходного списка
List<T>
. Затем осуществляется проход по всем элементам данного массива с использованием синтаксиса индексатора массива. Вызов метода
UseGenericList()
в операторах верхнего уровня приводит к получению следующего вывода:

***** Fun with Generic Collections *****

Items in list: 4

Name: Homer Simpson, Age: 47

Name: Marge Simpson, Age: 45

Name: Lisa Simpson, Age: 9

Name: Bart Simpson, Age: 8

->Inserting new person.

Items in list: 5

First Names: Homer

First Names: Marge

First Names: Maggie

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*