Не проходит весь цикл (находит не все заданные значения) - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д