Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

nika_29 avatar nika_29 5 Точки

03Oldest Family Member help Може ли някой да ми помогне

Здравейте,намерих  1 решение на тази задача- https://github.com/MilenaPetkanova/csharp-oop-basics/tree/master/0102-Defining-Classes-Exercises/0103-Oldest-Family-Member

Но не ми е ясно това нещо от кода-

 class Family

  {

        private List<Person> membersList;

        public List<Person> MembersList
        {
            get { return membersList; }
            set { membersList = value; }
        }
        public Family()
        {
            this.MembersList = new List<Person>();
        }

Не ми е ясно горното свойство public Family(),защо се създава нов лист.Помощ.Просто не разбирам защо е там

Много ще ми помогнете ако ми го обясните
        public void AddMember(Person member)
        {
            this.MembersList.Add(member);
        }
        public Person GetOldestMember()
        {
            return this.membersList.OrderByDescending(x => x.Age).FirstOrDefault();
        }

}

 

Тагове:
0
C# OOP Basics
D.Dimov_96 avatar D.Dimov_96 74 Точки
Best Answer

Здравей, nika_29

Създава се нов лист new List<Person>(), защото ако не бъде създаден membersList и MembersList ще бъдат null и програмата няма да може да работи.

На MembersList имаме set { membersList = value; }. Следователно когато направим this.MembersList = new List<Person>() ще имаме membersList = new List<Person>().

public Family() е публичен конструктор и е нужно да бъде достъпен от всички.

В метода AddMember добавяме елемент от клас Person. На MembersList имаме set { membersList = value; }. Следователно когато направим this.MembersList.Add(member) ще имаме this.membersList.Add(member).

public void AddMember(Person member)
{
    this.MembersList.Add(member);
}

В метода GetOldestMember() ще вземем един елемент от клас Person намиращ се в membersList.

Използваме linq:

1. OrderByDescending означава, че искаме да подредим елементите в обратен ред. Това означава, че искаме да подредим елементите от най-големия (на първо място) към на-малкия (на последно място).

2. (x => x.Age) това е критерия по който ще подредим елементите. В този случай това е x.Age възрастта на Person.

3. FirstOrDefault() ще върне първият намерен или стойноста по default (това е стойноста която приема дадена променлива, ако не бъде дадена друа стойност). За клас Person default е null. Следователно ако membersList е празен ще получим null.

public Person GetOldestMember()
{
    return this.membersList.OrderByDescending(x => x.Age).FirstOrDefault();
}

Надявам се отовора да е бил полезен.

2
nika_29 avatar nika_29 5 Точки

Благодаря много за полезния отговор.Разбрах го

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.