Не проходит весь цикл (находит не все заданные значения) - C#

Узнай цену своей работы

Формулировка задачи:

В общем, было такое у меня задание:Дана очередь данных о работниках фирмы: ФИО и адрес (улица, дом, квартира). Во второй массив записать только тех из них, которые живут на улице Красной. Вывести их на экран в алфавитном порядке. С алфавитным порядком я разберусь потом, проблема в другом. Почему во вторую таблицу выводит только одного человека,живущего на улице Красной?(хотя должно быть 3). Вот мой код(если можно это так назвать)
 class Person: IComparable<Person>
    {
        public string ФИО{get;set;}
        public string Улица{get;set;}
        public string Номер{get;set;}

        public Person(string Name, string Street, string Number)
        {
            this.ФИО = Name;
            this.Улица = Street;
            this.Номер = Number;
 
        }
       
        public int CompareTo(Person other)
        {
            int ln = string.Compare(ФИО, other.ФИО, StringComparison.OrdinalIgnoreCase);
            int fn = string.Compare(Улица, other.Улица, StringComparison.OrdinalIgnoreCase);
            int p = String.Compare(Номер, other.Номер, StringComparison.OrdinalIgnoreCase);
            if (ln != 0)
                return ln;
 
            if (ln == 0 && fn != 0)
                return fn;
 
            if (ln == 0 && fn == 0 && p != 0)
                return p;
 
            return 0;
        }
 public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            List<Person> pp = new List<Person>();
            pp.Add(new Person("Анацкая Виктория Владимировна", "Калинина", " 4"));
            pp.Add(new Person("Чернышева Мария Юрьевна", "Красная", "4"));
            pp.Add(new Person("Круглов Александр Александрович", "Красная", "59"));
            pp.Add(new Person("Сюткин Владимир Игнатович", "Гидростроителей", " 47"));
            pp.Add(new Person("Горобец Михаил Романович", "Красная", "151"));
            pp.Add(new Person("Дроздова Анна Михайловна", "Усанова", "45"));
 
            dataGridView1.DataSource = pp;

        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            List<Person> pp = new List<Person>();
            pp.Add(new Person("Анацкая Виктория Владимировна", "Калинина", " 4"));
            pp.Add(new Person("Чернышева Мария Юрьевна", "Красная", "4"));
            pp.Add(new Person("Круглов Александр Александрович", "Красная", "59"));
            pp.Add(new Person("Сюткин Владимир Игнатович", "Гидростроителей", " 47"));
            pp.Add(new Person("Горобец Михаил Романович", "Красная", "151"));
            pp.Add(new Person("Дроздова Анна Михайловна", "Усанова", "45"));
 
            List<Person> filteredPersons = new List<Person>();
            foreach (var Person in pp)
            
                if (Person.Улица == "Красная")
                {
                    filteredPersons.Add(Person);
                    dataGridView2.DataSource = filteredPersons;

                }

            }
        }
    }

Решение задачи: «Не проходит весь цикл (находит не все заданные значения)»

textual
Листинг программы
            var filteredPersons = new List<Person>();
 
            foreach (var Person in pp)
                if (Person.Улица == "Красная")
                    filteredPersons.Add(Person);
 
            dataGridView2.DataSource = filteredPersons;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы