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

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

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

В общем, было такое у меня задание:Дана очередь данных о работниках фирмы: ФИО и адрес (улица, дом, квартира). Во второй массив записать только тех из них, которые живут на улице Красной. Вывести их на экран в алфавитном порядке. С алфавитным порядком я разберусь потом, проблема в другом. Почему во вторую таблицу выводит только одного человека,живущего на улице Красной?(хотя должно быть 3). Вот мой код(если можно это так назвать)
Листинг программы
  1. class Person: IComparable<Person>
  2. {
  3. public string ФИО{get;set;}
  4. public string Улица{get;set;}
  5. public string Номер{get;set;}
  6.  
  7. public Person(string Name, string Street, string Number)
  8. {
  9. this.ФИО = Name;
  10. this.Улица = Street;
  11. this.Номер = Number;
  12. }
  13. public int CompareTo(Person other)
  14. {
  15. int ln = string.Compare(ФИО, other.ФИО, StringComparison.OrdinalIgnoreCase);
  16. int fn = string.Compare(Улица, other.Улица, StringComparison.OrdinalIgnoreCase);
  17. int p = String.Compare(Номер, other.Номер, StringComparison.OrdinalIgnoreCase);
  18. if (ln != 0)
  19. return ln;
  20. if (ln == 0 && fn != 0)
  21. return fn;
  22. if (ln == 0 && fn == 0 && p != 0)
  23. return p;
  24. return 0;
  25. }
Листинг программы
  1. public partial class Form1 : Form
  2. {
  3. public Form1()
  4. {
  5. InitializeComponent();
  6. }
  7.  
  8. private void Form1_Load(object sender, EventArgs e)
  9. {
  10. }
  11. private void button1_Click(object sender, EventArgs e)
  12. {
  13. List<Person> pp = new List<Person>();
  14. pp.Add(new Person("Анацкая Виктория Владимировна", "Калинина", " 4"));
  15. pp.Add(new Person("Чернышева Мария Юрьевна", "Красная", "4"));
  16. pp.Add(new Person("Круглов Александр Александрович", "Красная", "59"));
  17. pp.Add(new Person("Сюткин Владимир Игнатович", "Гидростроителей", " 47"));
  18. pp.Add(new Person("Горобец Михаил Романович", "Красная", "151"));
  19. pp.Add(new Person("Дроздова Анна Михайловна", "Усанова", "45"));
  20. dataGridView1.DataSource = pp;
  21.  
  22. }
  23. private void button2_Click(object sender, EventArgs e)
  24. {
  25. List<Person> pp = new List<Person>();
  26. pp.Add(new Person("Анацкая Виктория Владимировна", "Калинина", " 4"));
  27. pp.Add(new Person("Чернышева Мария Юрьевна", "Красная", "4"));
  28. pp.Add(new Person("Круглов Александр Александрович", "Красная", "59"));
  29. pp.Add(new Person("Сюткин Владимир Игнатович", "Гидростроителей", " 47"));
  30. pp.Add(new Person("Горобец Михаил Романович", "Красная", "151"));
  31. pp.Add(new Person("Дроздова Анна Михайловна", "Усанова", "45"));
  32. List<Person> filteredPersons = new List<Person>();
  33. foreach (var Person in pp)
  34. if (Person.Улица == "Красная")
  35. {
  36. filteredPersons.Add(Person);
  37. dataGridView2.DataSource = filteredPersons;
  38.  
  39. }
  40.  
  41. }
  42. }
  43. }

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

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

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


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

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

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы